{"id":17013635,"url":"https://github.com/unascribed/asyncsimplelog","last_synced_at":"2025-04-12T09:12:09.616Z","repository":{"id":98252689,"uuid":"239033202","full_name":"unascribed/AsyncSimpleLog","owner":"unascribed","description":"A fast, small, and useful logger implementation for SLF4j.","archived":false,"fork":false,"pushed_at":"2022-01-10T08:24:44.000Z","size":309,"stargazers_count":6,"open_issues_count":1,"forks_count":1,"subscribers_count":1,"default_branch":"trunk","last_synced_at":"2025-04-12T09:05:54.754Z","etag":null,"topics":["async","java","logger","slf4j","slf4j-logger"],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/unascribed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-02-07T22:23:08.000Z","updated_at":"2023-12-10T17:39:32.000Z","dependencies_parsed_at":"2023-05-18T23:30:31.840Z","dependency_job_id":null,"html_url":"https://github.com/unascribed/AsyncSimpleLog","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unascribed%2FAsyncSimpleLog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unascribed%2FAsyncSimpleLog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unascribed%2FAsyncSimpleLog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/unascribed%2FAsyncSimpleLog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/unascribed","download_url":"https://codeload.github.com/unascribed/AsyncSimpleLog/tar.gz/refs/heads/trunk","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248543849,"owners_count":21121838,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["async","java","logger","slf4j","slf4j-logger"],"created_at":"2024-10-14T06:13:49.982Z","updated_at":"2025-04-12T09:12:09.609Z","avatar_url":"https://github.com/unascribed.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# AsyncSimpleLog\n![Current version](https://img.shields.io/maven-metadata/v?label=current%20version\u0026metadataUrl=https%3A%2F%2Frepo.unascribed.com%2Fcom%2Funascribed%2Fasyncsimplelog%2Fmaven-metadata.xml\u0026style=flat-square)\n\nAsyncSimpleLog is an asynchronous implementation of a SLF4j Logger similar\nto SLF4j's SimpleLogger. Naive logger implementations (including SimpleLogger)\nor just direct System.out prints will synchronize on the output stream,\nresulting in a point of contention in multithreaded applications.\n\nIt was written in 2016 for a highly parallel HTTP server based on\nProject Grizzly, but it is clean and useful enough that I have been carrying\nit with me to any project that needs a logger, which is most of them. Logback\nis simply too heavy for me most of the time, and the ability to silence log\nlines by regex and automatically collapse repeat lines is helpful.\n\nIt has a variety of other features it has grown over the years as well, including\nANSI color/Powerline character support, silencing of loggers by their owning\nclasses (useful for shutting up servlet engines), and a couple other oddities.\n\nIt has a very simple implementation with few bells and whistles, and is configured\npurely through code. It's up to you to expose these features through a config\nfile, environment variables, etc.\n\n## What It Looks Like\n### Plain\n![](screenshot/plain.png)\n\n### ANSI\n![](screenshot/ansi.png)\n\n### ANSI + Powerline\n![](screenshot/powerline.png)\n\n(Not for everybody.)\n\n## Installation\nAsyncSimpleLog is distributed on my personal Maven, repo.unascribed.com. Here's\nhow you can use it in Gradle:\n\n```gradle\nrepositories {\n\tmaven {\n\t\turl \"https://repo.unascribed.com\"\n\t}\n}\n```\n\nAnd you can add AsyncSimpleLog as a dependency as such:\n\n```gradle\ndependencies {\n\timplementation \"com.unascribed:asyncsimplelog:4.6.1\"\n}\n```\n\n## Usage\nAsyncSimpleLog comes with a SLF4j StaticLoggerBinder. As long as slf4j-api is on\nyour classpath, it'll work out of the box. However, AsyncSimpleLog **must** be\ninitialized by calling `AsyncSimpleLog.startLogging()` to start the logging\nthread during your application's initialization.\n\n## Maturity\nI've been using AsyncSimpleLog as my preferred SLF4j logger implementation since\nI wrote it in 2016. It's seen quite a bit of use as such and is ready to go.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funascribed%2Fasyncsimplelog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funascribed%2Fasyncsimplelog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funascribed%2Fasyncsimplelog/lists"}