Rookout, creators of Live Debugger, have launched Live Logger with the goal of making the wealth of information hidden in production logs more accessible. They intend to achieve this by providing the capability to dynamically switch an application’s logging levels, log pipelining, log throughput tracking, and text and context based filtering.
Rookout Live Logger is aimed as a complement of the Live Debugger: it allows a developer to turn on log lines that already exist in their code, while the Live Debugger allows them to add log lines where they didn’t exist in the first place.
Its visual design follows the same approach as other “live tail” tools already available: a filter box on the top and options that can be selected on the left hand side. The promised novelty here is the ability to enable various log lines or levels dynamically during runtime, without the need for restarting the application. Presumably, the Rookout SDK can achieve this through bytecode manipulation, which actually causes new log lines to be added and printed. For a wider adoption it provides integration with popular logging libraries, such as Log4j, Logback and Winston. This core capability should empower software engineers to collect real time data. Currently, the SDK supports JVM, .Net, Python, Node.js and Ruby.
Live Logger’s features are focused on getting the right information to the developer investigating a potential production issue. In order to achieve that it implemented the following features:
- Dynamic log verbosity: the possibility to switch the log level in a dynamic fashion, without the need of redeploying and/or restarting the application. You can switch the log level to the desired verbosity INFO, DEBUG or even TRACE for the necessary amount of time.
- Text and context based filtering: given the complexity of today’s applications it is a pain to comb everything for the right information. If possible, just type in a short string and have the needed information available. Even if the Live Logger prints the log lines containing the required information, sometimes a more advanced approach is needed: switch only log lines that are printed during the execution of specific users, accounts, services, or other transaction related information. Integrated with tools that implemented OpenTracing and OpenTelemetry standards, Live Logger extracts the needed context.
- Log throughput tracking: to meet both the needs of the operations that need to ensure the proper amount of resources for operating the services and also the developers that need to have access to the required information, Live Logger provides an overview of the I/O resources that are spent on shipping these log lines to your log storage provider.
- Log pipelining: after getting the proper information available by filtering, it is time to push it to the observability pipeline. Rookout targets include the most popular log management and APM tools.
In summary, Live Logger adds a new capability to the Rookout toolsuite for production debugging by providing the means to enable log lines that are hidden by configuration. Aligning to the UI visual design expected from a “live tail”-like tool promises rapid adoption by the developers familiar with existing tools, like DataDog, SumoLogic or Splunk. By integrating with the most popular logging libraries and Application Performance Monitoring (APM) tools, it allows users to filter and consume data from multiple sources and to share and pipe it to the most common consumers.