{"id":22362674,"url":"https://github.com/ttakahari/log2slack","last_synced_at":"2025-10-14T22:06:53.535Z","repository":{"id":144136348,"uuid":"145203404","full_name":"ttakahari/Log2Slack","owner":"ttakahari","description":"Extensions that sends logs to Slack with loggers.","archived":false,"fork":false,"pushed_at":"2019-03-11T10:30:14.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-14T16:57:27.287Z","etag":null,"topics":["csharp","log","logger","logging","slack"],"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/ttakahari.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":"2018-08-18T08:27:58.000Z","updated_at":"2019-03-11T06:46:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"d34a04f8-022a-49f5-8e63-10c8e28bf93c","html_url":"https://github.com/ttakahari/Log2Slack","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ttakahari/Log2Slack","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttakahari%2FLog2Slack","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttakahari%2FLog2Slack/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttakahari%2FLog2Slack/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttakahari%2FLog2Slack/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ttakahari","download_url":"https://codeload.github.com/ttakahari/Log2Slack/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ttakahari%2FLog2Slack/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279021746,"owners_count":26087053,"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","status":"online","status_checked_at":"2025-10-14T02:00:06.444Z","response_time":60,"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","log","logger","logging","slack"],"created_at":"2024-12-04T17:10:14.143Z","updated_at":"2025-10-14T22:06:53.528Z","avatar_url":"https://github.com/ttakahari.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Log2Slack\n\nExtensions that sends logs to slack with loggers.\n\nSupported loggers are [NLog](http://nlog-project.org/) and [log4net](https://logging.apache.org/log4net/).\n\n[![AppVeyor](https://img.shields.io/appveyor/ci/gruntjs/grunt.svg?style=plastic)](https://ci.appveyor.com/project/ttakahari/Log2Slack)\n[![NuGet](https://img.shields.io/nuget/v/Log2Slack.NLog.svg?style=plastic)](https://www.nuget.org/packages/Log2Slack.NLog/)\n[![NuGet](https://img.shields.io/nuget/v/Log2Slack.Log4Net.svg?style=plastic)](https://www.nuget.org/packages/Log2Slack.Log4Net/)\n\n## Install\n\nfrom NuGet - [Log2Slack.NLog](https://www.nuget.org/packages/Log2Slack.NLog/)\nfrom NuGet - [Log2Slack.Log4Net](https://www.nuget.org/packages/Log2Slack.Log4Net/)\n\n```ps1\nPM \u003e Install-Package Log2Slack.NLog\nPM \u003e Install-Package Log2Slack.Log4Net\n```\n\n## How to use\n\n### NLog\n\nIf you use a XML file, configure as follow.\n\n```xml\n\u003cnlog xmlns=\"http://www.nlog-project.org/schemas/NLog.xsd\"\n    xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n    xsi:schemaLocation=\"http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd\"\n    autoReload=\"true\"\n    throwExceptions=\"true\"\u003e\n\n    \u003c!--add extension assembly.--\u003e\n    \u003cextensions\u003e\n        \u003cadd assembly=\"Log2Slack.NLog\" /\u003e\n    \u003c/extensions\u003e\n    \n    \u003ctargets\u003e\n        \u003c!--\n            add target with configuring as follow.\n                xsi:type: Slack\n                webHookUrl: your Incoming-WebHook URL.\n                serializerType: full name and assembly name of a serializer impletemting SlackSharp.IHttpContentJsonSerializer.\n        --\u003e\n        \u003ctarget name=\"slack\"\n            xsi:type=\"Slack\"\n            webHookUrl=\"https://hooks.slack.com/services/xxx\"\n            serializerType=\"SlackSharp.Serialization.Jil.JilSerializer, SlackSharp.Serialization.Jil\"\n            layout=\"${message}\" /\u003e\n    \u003c/targets\u003e\n\n    \u003crules\u003e\n        \u003clogger name=\"*\" minlevel=\"Debug\" writeTo=\"slack\" /\u003e\n    \u003c/rules\u003e\n    \n\u003c/nlog\u003e\n```\n\nIf you write codes instead of a XML file, configure as follow.\n\n```csharp\n// create an instance of NLog.Config.LoggingConfiguration.\nvar configuration = new LoggingConfiguration();\n\n// create an instance of Log2Slack.NLog.SlackTarget.\nvar target = new SlackTarget\n{\n    WebHookUrl = \"https://hooks.slack.com/services/xxx\", // your Incoming-WebHook URL.\n    SerializerType = typeof(SlackSharp.Serialization.Jil.JilSerializer), // type of a serializer impletemting SlackSharp.IHttpContentJsonSerializer.\n    Layout = \"${message}\" // log content layout\n};\n\n// add the target with a name.\nconfiguration.AddTarget(\"slack\", target);\n\n// according to the rules of NLog.\n```\n\n### log4net\n\nIf you use a XML file, configure as follow.\n\n```xml\n\u003clog4net\u003e\n\n    \u003c!--\n        add appender with configuring as follow.\n            appender-type: Log2Slack.Log4Net.SlackAppender, Log2Slack.Log4Net\n            param WebHookUrl: Your Incoming-WebHook URL.\n            param SerializerType: Full name and assembly name of a serializer impletemting SlackSharp.IHttpContentJsonSerializer.\n    --\u003e\n    \u003cappender name=\"SlackAppender\" type=\"Log2Slack.Log4Net.SlackAppender, Log2Slack.Log4Net\"\u003e\n        \u003cparam name=\"WebHookUrl\" value=\"{WebHookUrl}\" /\u003e\n        \u003cparam name=\"SerializerType\" value=\"SlackSharp.Serialization.Jil.JilSerializer, SlackSharp.Serialization.Jil\" /\u003e\n        \u003clayout type=\"log4net.Layout.PatternLayout\"\u003e\n            \u003cConversionPattern value=\"%message\" /\u003e\n        \u003c/layout\u003e\n        \u003cfilter\u003e\n            \u003cparam name=\"LevelMin\" value=\"DEBUG\" /\u003e\n            \u003cparam name=\"LevelMax\" value=\"FATAL\" /\u003e\n        \u003c/filter\u003e\n    \u003c/appender\u003e\n\n    \u003clogger name=\"test\"\u003e\n        \u003cappender-ref ref=\"SlackAppender\" /\u003e\n    \u003c/logger\u003e\n    \n\u003c/log4net\u003e\n```\n\nIf you write codes instead of a XML file, configure as follow.\n\n```csharp\n// create an instance of log4net.Layout.PatternLayout and call ActivateOptions method.\nvar layout = new PatternLayout\n{\n    ConversionPattern = \"%message\",\n};\n\nlayout.ActivateOptions();\n\n// create an instance of Log2Slack.Log4Net.SlackAppender and call ActivateOptions method.\nvar appender = new SlackAppender\n{\n    WebHookUrl = \"https://hooks.slack.com/services/xxx\", // your Incoming-WebHook URL.\n    SerializerType = typeof(SlackSharp.Serialization.Jil.JilSerializer), // type of a serializer impletemting SlackSharp.IHttpContentJsonSerializer.\n    Layout = layout // log content layout\n};\n\nappender.ActivateOptions();\n\n// create an instance of log4nt.Repository.Hierarchy.Hierarchy and add the appender.\nvar repository = (Hierarchy)LogManager.CreateRepository(GetType().Assembly, typeof(Hierarchy));\n\nrepository.Root.AddAppender(appender);\n\n// according to the rules of log4net.\n```\n\n## Lisence\n\nunder [MIT Lisence](https://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttakahari%2Flog2slack","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fttakahari%2Flog2slack","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fttakahari%2Flog2slack/lists"}