akurdyukov / Gelf4NLog

NLog Target for GrayLog2

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Gelf4NLog

Gelf4NLog is an NLog target implementation to push log messages to GrayLog2. It implements the Gelf specification and communicates with GrayLog server via UDP.

Solution

Solution is comprised of 3 projects: Target is the actual NLog target implementation, UnitTest contains the unit tests for the NLog target, and ConsoleRunner is a simple console project created in order to demonstrate the library usage.

Usage

Use Nuget:

PM> Install-Package Gelf4NLog.Target

Configuration

Here is a sample nlog configuration snippet:

<configSections>
  <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
</configSections>

<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<extensions>
	  <add assembly="Gelf4NLog.Target"/>
	</extensions>

	<targets>
	  <!-- Other targets (e.g. console) -->
    
	  <target name="graylog" 
			  xsi:type="graylog" 
			  hostip="192.168.1.7" 
			  hostport="12201" 
			  facility="console-runner"
	  />
	</targets>

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

</nlog>

Options are the following:

  • name: arbitrary name given to the target
  • type: set this to "graylog"
  • hostip: IP address of the GrayLog2 server
  • hostport: Port number that GrayLog2 server is listening on
  • facility: The graylog2 facility to send log messages

###Code

//excerpt from ConsoleRunner
var eventInfo = new LogEventInfo
    			{
					Message = comic.Title,
					Level = LogLevel.Info,
				};
eventInfo.Properties.Add("Publisher", comic.Publisher);
eventInfo.Properties.Add("ReleaseDate", comic.ReleaseDate);
Logger.Log(eventInfo);

About

NLog Target for GrayLog2

License:GNU Lesser General Public License v3.0


Languages

Language:C# 95.8%Language:PowerShell 4.0%Language:Shell 0.2%