{"id":16203276,"url":"https://github.com/sschmid/sherlog","last_synced_at":"2025-10-27T10:45:07.833Z","repository":{"id":12446428,"uuid":"15105468","full_name":"sschmid/Sherlog","owner":"sschmid","description":"Flexible logging for C# and Unity","archived":false,"fork":false,"pushed_at":"2023-05-17T20:58:54.000Z","size":2988,"stargazers_count":192,"open_issues_count":1,"forks_count":34,"subscribers_count":20,"default_branch":"main","last_synced_at":"2025-03-29T13:11:32.419Z","etag":null,"topics":["dotnet","logger","logging","tcp","unity"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sschmid.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2013-12-11T11:17:50.000Z","updated_at":"2024-12-20T03:27:12.000Z","dependencies_parsed_at":"2024-08-02T05:20:54.909Z","dependency_job_id":"ab2d1ed1-69fd-4191-a91f-831f1db94b92","html_url":"https://github.com/sschmid/Sherlog","commit_stats":{"total_commits":43,"total_committers":1,"mean_commits":43.0,"dds":0.0,"last_synced_commit":"49c922fc21b900896851dcae11d5d9817db21874"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FSherlog","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FSherlog/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FSherlog/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sschmid%2FSherlog/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sschmid","download_url":"https://codeload.github.com/sschmid/Sherlog/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247345854,"owners_count":20924102,"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":["dotnet","logger","logging","tcp","unity"],"created_at":"2024-10-10T09:53:34.911Z","updated_at":"2025-10-27T10:45:02.797Z","avatar_url":"https://github.com/sschmid.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Sherlog-Header](https://github.com/sschmid/Sherlog/raw/main/readme/Sherlog-Banner.png)\n\n# Sherlog – Flexible logging for C# and Unity\n\nSherlog is a very light logging library with a clear focus on speed,\nflexibility, and extensibility. It supports local and remote logging out of\nthe box so you can receive log messages from other devices over the air.\n\n[![CI](https://github.com/sschmid/Sherlog/actions/workflows/ci.yml/badge.svg)](https://github.com/sschmid/Sherlog/actions/workflows/ci.yml)\n[![Coverage Status](https://coveralls.io/repos/github/sschmid/Sherlog/badge.svg)](https://coveralls.io/github/sschmid/Sherlog)\n[![NuGet](https://img.shields.io/nuget/dt/Sherlog)](https://www.nuget.org/packages?q=Sherlog)\n[![License: MIT](https://img.shields.io/github/license/sschmid/Sherlog)](https://github.com/sschmid/Sherlog/blob/main/LICENSE.md)\n[![Twitter](https://img.shields.io/twitter/follow/s_schmid)][twitter-sschmid]\n\n# Install\n\n|                    | NuGet                                                                                                            | Unity Packages on [OpenUPM](https://openupm.com)                                                                                                                                                                     |\n|:-------------------|:-----------------------------------------------------------------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Sherlog            | [![NuGet](https://img.shields.io/nuget/v/Sherlog)](https://www.nuget.org/packages/Sherlog)                       | [![openupm](https://img.shields.io/npm/v/com.sschmid.sherlog?label=com.sschmid.sherlog\u0026registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.sschmid.sherlog)                                  |\n| Sherlog.Appenders  | [![NuGet](https://img.shields.io/nuget/v/Sherlog.Appenders)](https://www.nuget.org/packages/Sherlog.Appenders)   | [![openupm](https://img.shields.io/npm/v/com.sschmid.sherlog.appenders?label=com.sschmid.sherlog.appenders\u0026registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.sschmid.sherlog.appenders)    |\n| Sherlog.Formatters | [![NuGet](https://img.shields.io/nuget/v/Sherlog.Formatters)](https://www.nuget.org/packages/Sherlog.Formatters) | [![openupm](https://img.shields.io/npm/v/com.sschmid.sherlog.formatters?label=com.sschmid.sherlog.formatters\u0026registry_uri=https://package.openupm.com)](https://openupm.com/packages/com.sschmid.sherlog.formatters) |\n\nAutomated Unity Package Releases: https://github.com/sschmid/com.sschmid.sherlog\n\n# Quick Start\n\nThe SherlogSamples project contains samples for different use cases,\nsuch as logging to the console, adding colors or timestamps,\nand sending log messages via TCP to other devices.\n\n### See [SherlogSamples](https://github.com/sschmid/Sherlog/blob/main/samples/SherlogSamples/Program.cs)\n\n```\ndotnet run --project samples/SherlogSamples/SherlogSamples.csproj\n```\n\nRun the SherlogServer project to receive the sample log messages\nfrom SherlogSamples via a TCP connection.\n\n### See [SherlogServer](https://github.com/sschmid/Sherlog/blob/main/samples/SherlogServer/Program.cs)\n\n```\ndotnet run --project samples/SherlogServer/SherlogServer.csproj listen 12345\n```\n\n![SherlogSamples](https://github.com/sschmid/Sherlog/raw/main/readme/SherlogSamples.png)\n\n# Sherlog terminology\n\n## LogLevel\nThere are 6 [log levels](https://github.com/sschmid/Sherlog/blob/main/src/Sherlog/src/LogLevel.cs)\nmatching the Sherlog log methods:\n\n```csharp\nlogger.Trace(\"This is a message using logger.Trace()\");\nlogger.Debug(\"This is a message using logger.Debug()\");\nlogger.Info(\"This is a message using logger.Info()\");\nlogger.Warn(\"This is a message using logger.Warn()\");\nlogger.Error(\"This is a message using logger.Error()\");\nlogger.Fatal(\"This is a message using logger.Fatal()\");\n```\n\nYou can set the log level per logger or globally for all existing and future loggers.\n\n```csharp\nLogger.GlobalLogLevel = LogLevel.Warn;\n```\n\n```csharp\nvar logger = Logger.GetLogger(\"MyLogger\");\nlogger.LogLevel = LogLevel.Debug;\n```\n\nOnly log methods that match or exceed the current log level will forward\nmessages to appenders.\n\n## Appenders\nSherlog's plugin architecture lets you add multiple different appenders\nto handle log messages. An appender is a delegate method which contains\nthe logic for processing log messages. It might write a message to a file,\nprint it to the console or send it over the network via TCP.\nYou can easily write your own appenders. There are no limits!\n\nSherlog comes with a handful of pre-made appenders and helper classes to get you started quickly:\n\n### see [Sherlog.Appenders](https://github.com/sschmid/Sherlog/tree/main/src/Sherlog.Appenders/src)\n\n## Formatters\nSimilar to appenders you can add formatters to decorate messages with additional\ninfo like logger name, log level, timestamp, or color.\n\n### see [Sherlog.Formatters](https://github.com/sschmid/Sherlog/tree/main/src/Sherlog.Formatters/src)\n\n# Maintainer(s)\n[@sschmid on GitHub][github-sschmid] - [@s_schmid on Twitter][twitter-sschmid]\n\n[github-sschmid]: https://github.com/sschmid \"@sschmid\"\n[twitter-sschmid]: https://twitter.com/intent/follow?original_referer=https%3A%2F%2Fgithub.com%2Fsschmid%2FSherlog\u0026screen_name=s_schmid\u0026tw_p=followbutton \"s_schmid on Twitter\"\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2Fsherlog","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsschmid%2Fsherlog","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsschmid%2Fsherlog/lists"}