Observability
LogViewer is a Web application for monitoring server logs in real-time in the browser.
The tool provides powerful UI with highlighting, filtering, search, folding inconsiderable text. Merging several logs into one view works as well.
LogViewer can show huge log files without significant resource consumption because it reads only the part of the file that a user is watching. No indexing.
log-viewer-1.0.10/logviewer.sh
http://localhost:8111
. There will be a file chooser to select a log from the file system.User can open a log file using the file chooser on http://localhost:8111
or by a direct link: http://localhost:8111/log?log=$pathToLogFile. For opening several log files in one view,
pass several "log" query parameters, for example: http://localhost:8111/log?log=$pathToLogFile1&log=$pathToLogFile2&log=$pathToLogFile3
Note: all log files must have full timestamp, otherwise LogViewer cannot merge them.
Also, LogViewer can be embedded into another java web application, if you don't want to run it as a standalone process. See embedding to Spring Boot application or embedding to java web application
Configuration is located in log-viewer-1.0.10/config.conf
, the file has HOCON
format.
The most important configuration is a list of available files. Also, you can specify the log format if the automatic format detection works incorrectly; shortcuts for files/file sets, etc...
More details about configuration
The idea to filter logs without indexing sounds questionable. If the filter settings filter out all elements,
the system has to scan the entire file to make sure that no visible events exist. Also, each search can perform a full scan of the log.
Actually, the full scan is not a big problem, the parser works fast enough. Parsing 1Gb file takes 3,5 sec on my machine. It is viable.
Setting a date range filter can speed up the tool a lot because only events from the specified date range will be considered.