Giter VIP home page Giter VIP logo

logdoctor's Introduction

_______________________________________________________________________________
|                           HELLO WORLD, MY NAME IS                           |
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░██░░░░░░░░░░░░░░░░░░██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░███████░██░░░░░░░░░░░░░░░░░░░░░░█░░░░░░░░█░█░█░█░█░█░░░░░░░░░░░░░░
░░░░░░░░░░░░░░█░░░░░░██░░░░░███░░░░██░░████░░█░████░░░███████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░████░░░██░░░░░█░░█░░█░█░░░█░░█░█░█░░█░░░███████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░█░░░░░░██░░░░░███░░░█░░█░░███░░█░█░░█░░░███████████░ ░░░░░░░░░░░░
░░░░░░░░░░░░░░██████░█░░░░░░█░░█░██████░█░░█░░░████░░░            ░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░███░░█░░░░█░█░░█░░░░░░░░░░  ▄       ▄░ ░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░███████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░███████████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░████░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░
|                                                                             |
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯

logdoctor's People

Contributors

eikiyamashiro avatar elb4rto avatar guidiamond avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

logdoctor's Issues

STATS: allow the user to change the color of the charts

Introduce some options in the configs section to let the user define the colors to use for the charts


  • Warnings:
    • Select the color for non-warning bars
    • Select the color for warning bars

  • Speed:
    • Select the 3 colors of the line gradient

  • Daytime:
    • Select the color of the bars

  • Relational:
    • Select the 3 colors of the area gradient
    • Select the color of the outer line

Translations

Translators / Auditors wanted

If you'd like to have this program in your language or simply to contribute to a project, this is the place for you!

Just submit here and give a look at the contributions section

BUG: Duplicated hashes not caught when both are new

Describe the Issue

Files hashes don't get compared between new log files, only against the database.
When selecting some files to parse, if two of them have the same hash, no warning is thrown.



How to Reproduce

Steps to reproduce the behavior:

  1. Have a log file
  2. Duplicate it
  3. Run LogDoctor
  4. Select both files
  5. Start parsing
  6. See the error: no warning is thrown



Expected Behavior

A warning message


STATS: Allow the user to tweak the data visualization a bit

Introduce some options in the configs section to let the user define some aspects of the visualization of the data in the statistics charts.


  • Counts
    • add an option to define how many slices the pie will be composed of, at maximum and in addition to the one to be used for the Others.
      minimum 1, maximum 31, default 15
    • add an option to define the size of the pie
      minimum 0.4, maximum 0.8, default 0.6, step 0.01

  • Speed
    • add an option to define the time interval to use when calculating the speed values, in seconds
      values {1,2,3,4,5,6,10,15,20,30,60,120,180,240,300,600,900,1200,1800,3600}, default 1
    • add an option to define the format to use for the time ticks on the x-axis
      values {"hh:mm","hh"}, default "hh:mm"

  • Relational
    • add an option to define the format to use for the time ticks on the x-axis
      values {"hh:mm","hh"}, default "hh:mm"

Create a scrpt to automatize translations

  • Create a python script to automatize the translation of ts files using a module such as argos-translate (preferred) or deep-translator
  • Generate and translate ts files for all the available languages (or most of them) and integrate them in the project

Only translate entries that do not have a <translation> field yet, don't touch already existing translation (may them be marked as unfinished or not)

Automatically generated <translation> fields should be marked as unfinished

BUG: logs list hangs when logs path does not exist

Description

When scanning for logs, the entire section remains disabled if the directory doesn't exist on the system



How to Reproduce

Steps to reproduce the behavior:

  1. Create a temporary directory
  2. Edit the logs configurarions for a webserver, setting the path to the temporary folder and save it
  3. Remove the temporary directory
  4. Refresh the logs list for the choosen webserver
  5. See issue



Expected Behavior

Restore the normal state and show an error message


BUG: Crash with no file left to parse

Describe the Issue

Crashes when all the files which have been selected to be parsed get discarded



How to Reproduce

Steps to reproduce the behavior:

  1. Have a log file which has been used already
  2. Select it from the list
  3. Start parsing
  4. Choose to Discard the file
  5. See the error



Expected Behavior

Abort the process and keep running


Fix: cross-platform issues

  • Windows
    • zlib incompatible function inflateInit2
    • libcurl include struggle
    • ctime missing strptime function
    • dialogs sometimes resulting in a crash
    • statically linking non-qt libraries
    • window themes not displaying properly
    • UTF-8 uncommon characters not displaying properly
  • Mac
    • tabs not displaying properly

BUG: Snake game crashes when closing without playing

Description

Closing the snake game window from the menu screen (without playing) causes a crash



How to Reproduce

Steps to reproduce the behavior:

  1. Launch the snake game
  2. Close the game window without pressing PLAY
  3. See the crash



Expected Behavior

Not a crash


BUG: tables with sorted column

Description

When renewing a table having a column for which the sort mode have been manually enabled, most of the other columns' items don't get displayed



How to Reproduce

Steps to reproduce the behavior:

  1. Go to the statistics section
  2. Choose a cathegory which has a table
  3. Click on the draw button
  4. Sort a column by clicking on the header
  5. Click the draw button again
  6. See the error



Expected Behavior

Normally filling the table

Release the new GUI

  • better graphics
    • for the whole program
      • more modern style
      • theme selection
        • for the window
        • for the text browser
        • for the charts
    • for the statistics viewer
      • bars graphs
      • linear graphs
      • donut graphs
  • usage control with sha256
  • store statistics in a SQL database
  • a feature to alert when a specific page has been requested
  • a feature to alert about URL injection / path finding attempts
  • more advanced statistics
    • while parsing logs
      • better performance informations
      • number of lines for every hour of the day
    • while viewing statistics
      • about the hours of the day
      • how many times a specific request brought to another
      • view / add / remove warning marks
      • global overview:
        • the most recurrent value for every some fields
        • the average time taken / bytes sent / bytes received
        • total time taken / bytes sent / bytes received

BUG: crapup destruction

Description

Deleting an instance of crapup causes a crash when called after having manually closed it before time, but only if it was waiting for a (missing) connection



How to Reproduce

Steps to reproduce the behavior:

  1. Disconnect from the internet
  2. Go to 'Check updates'
  3. Close the window before it times out
  4. Run 'Check updates' again
  5. See the error



Expected Behavior

Not a crash

BUG: Error message at first launch

Description

When launching LogDoctor the first time (or whenever there is no conf file) an error message is displayed claiming "The path doesn't exist"



How to Reproduce

Steps to reproduce the behavior:

  1. Delete the conf file (if any)
  2. Run the application
  3. See the error message



Expected Behavior

No error message should be displayed if a custom path is not provided through the conf file

BUG: Label on top of Counts stats chart not properly visible when expanded

Description

In the Counts section of the statistics, labels are partially hidden when an element of the chart is expanded and the label is close to the title



How to Reproduce

Steps to reproduce the behavior:

  1. Open the statistics section
  2. Move to the Counts tab
  3. Draw a chart
  4. Expand the topmost element of the pie
  5. If the label is close enough to the title, see the issue



Expected Behavior

Every label should be fully visible when expanded, despite its position



Possible solutions

  • Reduce the font size for these labels
  • Reduce the size of the pie chart
  • Combination of both the above (best gain)

BUG: Drawing Relational statistics for 1 day is uneffective

Description

Attempting to draw Relational statistics while having the same date for both the from and to fields results in nothing being done



Additional informations

The feature was properly working in previous versions



How to Reproduce

Steps to reproduce the behavior:

  1. Open the statistics section
  2. Move to the Relational tab
  3. Set the same date for bot from and to
  4. Push the draw button
  5. See the issue



Expected Behavior

Statistics should be produced


BUG: Files selection not cleared on job abort

Describe the Issue

The selected log files hiddenly remain selected when the job gets aborted



How to Reproduce

Steps to reproduce the behavior:

  1. Have a file which has been used already
  2. Select it to he parsed
  3. Start parsing
  4. Choose to Abort
  5. Unselect the file and select a different one
  6. Start parsing
  7. See the warning message about the previous file again



Expected Behavior

Having the selection renewed in any case

2Fix

  • Multiple duplicate database connections lead to overwriting the previous one
  • Gzip module crashes when attempting to read a root-owned file
  • Thread-unsafe craplog-related methods lead to crashes on some systems

Ask to restore the last backup if the database is missing

In case the logs database cannot be found, search for a backup and (if any is found) open a dialog window to propose to restore it

Fall back to the existing dialog which proposes to create a new database in case no backup is found or the user refuses to restore it


Add an option in the configs to allow/deny following symlinks/hardlinks

Add a new option in the configuration section to specify whether symlinks/hardlinks should be followed or not.

The setting should be applied to any file/folder, eg:

  • conf file / configs folder
  • logs directory / log files
  • resource, files and folders (databases, help files, etc)

In case following links is denied, the entire path should be checked every time, element by element.

IDEA: Create a Path class aimed to hold a path and do the job every time the get method is called to get the actual path string

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.