{"id":24317975,"url":"https://github.com/dawids222/log-lite","last_synced_at":"2026-06-19T23:31:43.900Z","repository":{"id":106586325,"uuid":"151237974","full_name":"dawids222/Log-Lite","owner":"dawids222","description":"Small and simple logger","archived":false,"fork":false,"pushed_at":"2022-08-09T17:18:37.000Z","size":119,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-06-25T22:04:32.571Z","etag":null,"topics":["csharp","fast","lightweight","logging","net"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dawids222.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2018-10-02T10:34:38.000Z","updated_at":"2021-11-21T11:43:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"c31c5016-c086-431c-9de7-7690fbc9bd8b","html_url":"https://github.com/dawids222/Log-Lite","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dawids222/Log-Lite","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawids222%2FLog-Lite","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawids222%2FLog-Lite/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawids222%2FLog-Lite/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawids222%2FLog-Lite/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dawids222","download_url":"https://codeload.github.com/dawids222/Log-Lite/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawids222%2FLog-Lite/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34552295,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["csharp","fast","lightweight","logging","net"],"created_at":"2025-01-17T14:35:52.357Z","updated_at":"2026-06-19T23:31:43.874Z","avatar_url":"https://github.com/dawids222.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Log-Lite\n\nLog-Lite is a small size, high performance tool for logging events. Library is written in C#,has no external dependencies and rely on in-code configuration.\n\n# Table of contents\n- [Features](#Features)\n- [Examples](#Examples)\n- [Todos](#Todos)\n\n## Features\n\n  - 4 log levels (info, warning, error, fatal)\n  - Custom logs formatting\n  - Writing to Console\n  - Writing to file\n  - Writing to multiple sources at once\n  - Archiving log files by given criteria\n  - Selecting log levels to handle\n \n## Examples\n\n```CSharp\n// creating basic logger that will write to file logs.txt\nvar fileLogWriter = new FileLogWriter();\nvar logger = new Logger(fileLogWriter);\n```\n\n```CSharp\n// creating basic logger that will write to console\nvar consoleLogWriter = new ConsoleLogWriter();\nvar logger = new Logger(consoleLogWriter);\n```\n\n```CSharp\n// loggers can have multiple log writers\nvar fileLogWriter = new FileLogWriter();\nvar consoleLogWriter = new ConsoleLogWriter();\nvar logger = new Logger(fileLogWriter, consoleLogWriter);\n```\n\n```CSharp\n// writing logs\nlogger.Debug(\"MESSAGE\");\nlogger.Info(\"MESSAGE\");\nlogger.Warning(\"MESSAGE\");\nlogger.Error(\"MESSAGE\");\nlogger.Fatal(\"MESSAGE\");\n```\n\n```CSharp\n// default log format can be changed using a formatter\n// every writer can have it's own formatter\n// in a FileLogWriter good way to set it is by using a builder\nvar simpleFormatter = new CustomLogFormatter((i) =\u003e $\"{i.Level} {DateTime.Now} {i.Message}\");\nvar fileLogWriter = FileLogWriter.Builder()\n    .Formatter(simpleFormatter)\n    .Build();\nvar logger = new Logger(fileLogWriter);\n```\n\n```CSharp\n// we can specify which file to log and what levels to log\nvar errorsFileInfo = new SystemFileInfo(\"errors.txt\");\nvar logLevels = new LogLevel[] { LogLevel.ERROR, LogLevel.FATAL };\nvar errorsFileLogWriter = FileLogWriter.Builder()\n    .SetFileInfo(errorsFileInfo)\n    .SetAllowedLogLevels(logLevels)\n    .Build();\nvar logger = new Logger(errorsFileLogWriter);\n// now only ERRORS and FATALS will be logging to errors.txt file\n```\n\n```CSharp\n// to keep log file small and useful we would want to archive it on some point\nvar fileInfo = new SystemFileInfo(\"logs.txt\");\nvar checker = new SizeArchiveNecessityChecker(fileInfo, 1, MemoryUnit.MB);\nvar fileNameFormatter = new MillisecondsArchiveFileNameFormatter(\"json\");\nvar archiver = new FileArchiver(fileInfo, \"Archive\", checker, fileNameFormatter: fileNameFormatter);\nvar fileLogWriter = FileLogWriter.Builder()\n    .SetFileInfo(fileInfo)\n    .SetFileArchiver(archiver)\n    .Build();\n// now if logs.txt will have more than 1MB data it will be moved to Archive directory with name changed to current timestamp as milliseconds\n// new fresh logs.txt file will be created\n// log files can be also archived based on their age using TimeArchiveNecessityChecker\n```\n\n```CSharp\n// my personal favourite setup\n// global writer for all kinds of logs, writes to logs.txt and archives them in Archive directory when they are older then 1 day\nvar fileInfo = new SystemFileInfo(\"logs.txt\");\nvar checker = new TimeArchiveNecessityChecker(fileInfo, 1, TimeUnit.DAYS);\nvar archiver = new FileArchiver(fileInfo, \"Archive\", checker);\nvar fileWriter = FileLogWriter.Builder()\n    .SetFileInfo(fileInfo)\n    .SetFileArchiver(archiver)\n    .Build();\n\n// errors writer for separating dangerous logs, writes to errors.txt archives them in Archive_Errors directory when they reach 1MB size\nvar errorsFileInfo = new SystemFileInfo(\"errors.txt\");\nvar errorsChecker = new SizeArchiveNecessityChecker(errorsFileInfo, 1, MemoryUnit.MB);\nvar errorsArchiver = new FileArchiver(errorsFileInfo, \"Archive_Errors\", errorsChecker);\nvar logLevels = new LogLevel[] { LogLevel.ERROR, LogLevel.FATAL };\nvar errorsFileWriter = FileLogWriter.Builder()\n    .SetFileInfo(errorsFileInfo)\n    .SetFileArchiver(errorsArchiver)\n    .SetAllowedLogLevels(logLevels)\n    .Build();\n\n// console writer for simple logging and instant debugging\nvar simpleFormatter = new CustomLogFormatter((i) =\u003e $\"{i.Message}\");\nvar consoleWriter = new ConsoleLogWriter(simpleFormatter);\n\nvar logger = new Logger(fileWriter, errorsFileWriter, consoleWriter);\n```\n\n### Todos\n\n - Write MORE Tests\n\n\n[//]: # (These are reference links used in the body of this note and get stripped out when the markdown processor does its job. There is no need to format nicely because it shouldn't be seen. Thanks SO - http://stackoverflow.com/questions/4823468/store-comments-in-markdown-syntax)\n\n\n   [dill]: \u003chttps://github.com/joemccann/dillinger\u003e\n   [git-repo-url]: \u003chttps://github.com/joemccann/dillinger.git\u003e\n   [john gruber]: \u003chttp://daringfireball.net\u003e\n   [df1]: \u003chttp://daringfireball.net/projects/markdown/\u003e\n   [markdown-it]: \u003chttps://github.com/markdown-it/markdown-it\u003e\n   [Ace Editor]: \u003chttp://ace.ajax.org\u003e\n   [node.js]: \u003chttp://nodejs.org\u003e\n   [Twitter Bootstrap]: \u003chttp://twitter.github.com/bootstrap/\u003e\n   [jQuery]: \u003chttp://jquery.com\u003e\n   [@tjholowaychuk]: \u003chttp://twitter.com/tjholowaychuk\u003e\n   [express]: \u003chttp://expressjs.com\u003e\n   [AngularJS]: \u003chttp://angularjs.org\u003e\n   [Gulp]: \u003chttp://gulpjs.com\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawids222%2Flog-lite","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdawids222%2Flog-lite","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawids222%2Flog-lite/lists"}