NLog.Slack 2.0.0

NLog target for Slack - your logs in one place and instantly searchable, everywhere.

Install-Package NLog.Slack -Version 2.0.0
dotnet add package NLog.Slack --version 2.0.0
<PackageReference Include="NLog.Slack" Version="2.0.0" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add NLog.Slack --version 2.0.0
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

NLog.Slack

Nuget

An NLog target for Slack - your logs in one place and instantly searchable, everywhere.

NLog.Slack

Note: it is no longer possible to pass in a custom channel, username or icon. This must be defined by your Slack App.

Installation

Via NuGet: Install-Package NLog.Slack

... or just build it your self!

Usage

  1. Create a new Slack App in the correct Workspace.
  2. Add the Incoming Webhooks functionality to your App.
  3. Generate a new Webhook URL and Authorize it to post to a channel.
  4. Copy your Webhook URL and configure NLog via your NLog.config file or programmatically, as below.

NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <extensions>
    <add assembly="NLog.Slack" />
  </extensions>

  <targets async="true">
    <target xsi:type="Slack"
            name="slackTarget"
            layout="${message}"
            webHookUrl="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
            compact="false">

			<field name="Machine Name" layout="${machinename}" />
			<field name="Process Name" layout="${processname}" />
			<field name="Process PID" layout="${processid}" />
	</target>
  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="slackTarget" />
  </rules>
</nlog>

Note: it's recommended to set async=&quot;true&quot; on targets so if the HTTP call to Slack fails or times out it doesn't slow down your application.

Programmatically

var config = new LoggingConfiguration();
var slackTarget = new SlackTarget
{
      Layout = "${message}",
      WebHookUrl = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
};

config.AddTarget("slack", slackTarget);

var slackTargetRules = new LoggingRule("*", LogLevel.Debug, slackTarget);
config.LoggingRules.Add(slackTargetRules);

LogManager.Configuration = config;

And you're good to go!

Configuration Options

Key | Description
----------:| -----------
WebHookUrl | Grab your Webhook URL (with the token) from your Incoming Webhooks integration in Slack
Compact | Set to true to just send the NLog layout text (no process info, colors, etc)

NLog.Slack

Nuget

An NLog target for Slack - your logs in one place and instantly searchable, everywhere.

NLog.Slack

Note: it is no longer possible to pass in a custom channel, username or icon. This must be defined by your Slack App.

Installation

Via NuGet: Install-Package NLog.Slack

... or just build it your self!

Usage

  1. Create a new Slack App in the correct Workspace.
  2. Add the Incoming Webhooks functionality to your App.
  3. Generate a new Webhook URL and Authorize it to post to a channel.
  4. Copy your Webhook URL and configure NLog via your NLog.config file or programmatically, as below.

NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <extensions>
    <add assembly="NLog.Slack" />
  </extensions>

  <targets async="true">
    <target xsi:type="Slack"
            name="slackTarget"
            layout="${message}"
            webHookUrl="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"
            compact="false">

			<field name="Machine Name" layout="${machinename}" />
			<field name="Process Name" layout="${processname}" />
			<field name="Process PID" layout="${processid}" />
	</target>
  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="slackTarget" />
  </rules>
</nlog>

Note: it's recommended to set async=&quot;true&quot; on targets so if the HTTP call to Slack fails or times out it doesn't slow down your application.

Programmatically

var config = new LoggingConfiguration();
var slackTarget = new SlackTarget
{
      Layout = "${message}",
      WebHookUrl = "https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX",
};

config.AddTarget("slack", slackTarget);

var slackTargetRules = new LoggingRule("*", LogLevel.Debug, slackTarget);
config.LoggingRules.Add(slackTargetRules);

LogManager.Configuration = config;

And you're good to go!

Configuration Options

Key | Description
----------:| -----------
WebHookUrl | Grab your Webhook URL (with the token) from your Incoming Webhooks integration in Slack
Compact | Set to true to just send the NLog layout text (no process info, colors, etc)

  • .NETFramework 4.5

  • .NETStandard 2.0

Version History

Version Downloads Last updated
2.0.0 429 4/17/2019
1.0.4 699 3/5/2019
1.0.2 41,453 11/13/2015
1.0.1 2,015 9/5/2014
1.0.0 417 9/1/2014