Full Changelog: 0.5.0...0.6.0
Changes:
- Implemented tailspin-style log output coloring (functionality will be improved in future versions).
Since coloring imposes an additional load for line-by-line processing when loading the log, this slows down the filtering process. To increase performance, an asynchronous coloring process is used, which increases the speed by almost 2 times compared to the synchronous one (on average, 1.8 times). Also, the main conditions for partial keyword checking have been optimized as much as possible.
Performance:
- Loading and coloring 30K lines takes an average of 450 ms, for 100K lines it takes 1300 ms on a virtual machine (2 vCPU Intel Core i5-10400) from syslog files.
- On MacBook Pro 2019 (Intel i7 x64) it averages 700 ms per 100K lines.
Debugging:
- Debugged
btmp
andwtmp
output for issue #6 - Added log loading time (for debugging) instead of the maximum output lines value.
- Improved filtering performance. Fixed an issue in
Regex
mode when using an empty filter or a character of any value in the string, and removed the limits on the number of output lines from the previous release (50K lines inRegex
mode). - Improved performance when scrolling through the log (disabled filtering and output coloring).
- Improved performance when updating file logs in the background (updating only occurs if the file has been changed).
- Changed the timeout of the background update of all logs from one to three seconds, to avoid freezing when constantly changing data in the log with a volume of 100K lines and above.
- Fixed the problem of adjusting the cursor position when filtering text after scrolling (an empty log was displayed before manual scrolling if there are fewer lines than the current position).
- Fixed all linters errors from golangci-lint.
- Removed unused code from the previous release (list of processes and loading logs for them).
Build and installation:
- Added check for linters during build in the script and implemented build via GitHub Actions.
- Debugged installation on MacOS (quarantine exclusion).