NLog.Targets.Gelf.AspNetCore
1.0.1
dotnet add package NLog.Targets.Gelf.AspNetCore --version 1.0.1
NuGet\Install-Package NLog.Targets.Gelf.AspNetCore -Version 1.0.1
<PackageReference Include="NLog.Targets.Gelf.AspNetCore" Version="1.0.1" />
<PackageVersion Include="NLog.Targets.Gelf.AspNetCore" Version="1.0.1" />
<PackageReference Include="NLog.Targets.Gelf.AspNetCore" />
paket add NLog.Targets.Gelf.AspNetCore --version 1.0.1
#r "nuget: NLog.Targets.Gelf.AspNetCore, 1.0.1"
#:package NLog.Targets.Gelf.AspNetCore@1.0.1
#addin nuget:?package=NLog.Targets.Gelf.AspNetCore&version=1.0.1
#tool nuget:?package=NLog.Targets.Gelf.AspNetCore&version=1.0.1
NLog.Targets.Gelf.AspNetCore
Gelf4NLog is an NLog target implementation to push log messages to GrayLog2. It implements the Gelf specification and communicates with GrayLog server via UDP.
History
Code forked from https://github.com/GokGokalp/NLog.Web.AspNetCore.Targets.Gelf which is a fork from https://github.com/2020Legal/NLog.Targets.Gelf which is a fork from https://github.com/akurdyukov/Gelf4NLog who forked the origonal code from https://github.com/seymen/Gelf4NLog
Usage
Use Nuget:
$ dotnet add package NLog.Targets.Gelf.AspNetCore
Configuration
Here is a sample nlog.config configuration file for graylog:
<?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"
autoReload="true"
throwExceptions="false"
internalLogLevel="Off"
internalLogFile="c:\temp\internal-nlog.txt">
<extensions>
<add assembly="NLog.Web.AspNetCore"/>
<add assembly="NLog.Targets.Gelf.AspNetCore"/>
</extensions>
<targets>
<target xsi:type="File" name="debugFile" filename="C:\@Logs\${shortdate}-${level}-${applicationName}.txt" layout="${longdate}|${level:upperCase=true}|${logger}|${aspnet-Request-Method}|url: ${aspnet-Request-Url}${aspnet-Request-QueryString}|${message}" concurrentWrites="false" />
<target xsi:type="Gelf" name="graylog" endpoint="udp://192.168.99.100:12201" facility="console-runner" sendLastFormatParameter="true" gelfVersion="1.1">
<parameter name="param1" layout="${longdate}"/>
<parameter name="param2" layout="${callsite}"/>
</target>
</targets>
<rules>
<logger name="*" minlevel="Debug" writeTo="debugFile, graylog" />
</rules>
</nlog>
Options are the following:
- name: arbitrary name given to the target
- xsi:type: set this to "gelf"
- endpoint: the uri pointing to the graylog2 input in the format udp://{IP or host name}:{port} note: support is currently only for udp transport protocol
- facility: The graylog2 facility to send log messages
- sendLastFormatParameter: default false. If true last parameter of message format will be sent to graylog as separate field per property
- gelfVersion: default "1.0". Set this to "1.1" in order to use actual GELF message format
###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);
or alternatively for simple log messages
Logger.Info("Simple message {0}", value);
or alternatively for use of sendLastFormatParameter
Logger.Info(comic.Title, new { Publisher = comic.Publisher, ReleaseDate = comic.ReleaseDate });
will log Publisher and ReleaseDate as separate fields in Graylog
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- Newtonsoft.Json (>= 13.0.3)
- NLog.Extensions.Logging (>= 5.3.11)
- System.ComponentModel.Annotations (>= 5.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.