Skip to content

Frankofoedu/Nlog.Discord

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLog.Discord

An NLog target for Discord

Installation

Via NuGet: Install-Package NLog.Discord

... or just build it your self!

Usage

  1. Create a new Discord Webhook integration in the correct channel.
  2. Generate a new Webhook URL and Authorize it to post to a channel.
  3. 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.Discord" />
  </extensions>

  <targets async="true">
    <target xsi:type="Discord"
            name="discordTarget"
            layout="${message}"
            webHookUrl="https://hooks.discord.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="discordTarget" />
  </rules>
</nlog>

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

Programmatically

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

config.AddTarget("discord", discordTarget);

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

LogManager.Configuration = config;

And you're good to go!

Configuration Options

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

Inspired by

https://github.com/eth0izzle/NLog.Slack

About

An NLog target for Discord

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages