{"repo":"tersesystems/blacklite","free":true,"listed":false,"github":"https://github.com/tersesystems/blacklite","clone":"git clone https://github.com/tersesystems/blacklite.git","description":"\"Fast as internal ring buffer\" Logback/Log4J2 appender using SQLite with zstandard dictionary compression and rollover.","language":"Java","stars":68,"topics":["logging","sqlite","logback","log4j2","zstandard","slf4j"],"license":"Apache-2.0","category":"databases-storage","readme_excerpt":"Blacklite Blacklite is an SQLite appender that is intended for cases where you want buffer of logging data, and also want the option of querying logs from different processes with a built in query language. So why use Blacklite? Logback does come with a built-in circular buffer appender, but there is no way to dump it on command. The terse-logback ring buffer classes will dump a ring buffer, but flush the entire buffer to logs. This works in a single-user or client scenario as described in Using Ring Buffer Logging to Help Find Bugs, but does not work in a server-side environment, where there may be many concurrent operations and a much greater volume of logs which would make \"dumping\" in appropriate. Blacklite provides this functionality by using a queue roughly equivalent to an in-memory ring buffer , and then writing to a database configured for write throughput by using memory mapping and write ahead logging. Using SQLite, the buffer can be queried instead of dumped, and a much broader array of ecosystem of tools can be used with SQLite than with an in-memory ring buffer. Practically speaking, with some decent hardware you can budget around 800 debugging statements per 1 ms request -- see benchmarks. Using conditional logging, you can turn on debug logging in production and get a complete picture of what a single request is doing. See echopraxia-examples and terse-logback-showcase for a live demonstration. Blog post here. Core Features Blacklite supports both Logback and ","default_branch":null,"files":null,"tree":[],"storefront":"/r/tersesystems","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tersesystems/blacklite/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}