Serilog.Sinks.SyslogMessages
2.0.1
See the version list below for details.
dotnet add package Serilog.Sinks.SyslogMessages --version 2.0.1
NuGet\Install-Package Serilog.Sinks.SyslogMessages -Version 2.0.1
<PackageReference Include="Serilog.Sinks.SyslogMessages" Version="2.0.1" />
paket add Serilog.Sinks.SyslogMessages --version 2.0.1
#r "nuget: Serilog.Sinks.SyslogMessages, 2.0.1"
// Install Serilog.Sinks.SyslogMessages as a Cake Addin #addin nuget:?package=Serilog.Sinks.SyslogMessages&version=2.0.1 // Install Serilog.Sinks.SyslogMessages as a Cake Tool #tool nuget:?package=Serilog.Sinks.SyslogMessages&version=2.0.1
Serilog.Sinks.SyslogMessages
A Serilog sink that logs events to remote syslog servers using both UDP and TCP (including over TLS), and can also use POSIX libc syslog functions to write to the local syslog service on Linux systems. Both RFC3164 and RFC5424 format messages are supported.
Getting started
Install the Serilog.Sinks.SyslogMessages package from NuGet:
Install-Package Serilog.Sinks.SyslogMessages
To configure the sink to write messages to a remote syslog service over UDP, call WriteTo.UdpSyslog()
during logger configuration:
var log = new LoggerConfiguration()
.WriteTo.UdpSyslog("10.10.10.14")
.CreateLogger();
To configure the sink to write messages to a remote syslog service over TCP, call WriteTo.TcpSyslog()
during logger configuration:
var log = new LoggerConfiguration()
.WriteTo.TcpSyslog("10.10.10.14")
.CreateLogger();
To configure the sink to write messages to the local syslog service on Linux systems, call WriteTo.LocalSyslog()
during logger configuration:
var log = new LoggerConfiguration()
.WriteTo.LocalSyslog()
.CreateLogger();
A number of optional parameters are available for more advanced configurations, with more details in the following sections.
Message Format
This sink supports RFC3164 and RFC5424 format messages, as well as a basic 'local' format which is suitable for use with the LocalSyslog
sink. The default is RFC3164 for the UDP sink, and RFC5424 for the TCP sink. RFC5424 is more capable format, and should be used when possible - for example, it supports full timestamps that include the local time offset. It also supports structured data, and these sinks will write Serilog properties to the STRUCTURED-DATA field.
To configure the format, use the format
parameter:
var log = new LoggerConfiguration()
.WriteTo.UdpSyslog("10.10.10.14", format: SyslogFormat.RFC5424)
.CreateLogger();
Examples
An example of an RFC3164 message:
<12>Dec 19 04:01:02 MYHOST MyApp[1912]: [Source.Context] This is a test message
An example of an RFC5424 message:
<12>1 2013-12-19T04:01:02.357852+00:00 MYHOST MyApp 1912 Source.Context [meta Property1="A Value" AnotherProperty="Another Value" SourceContext="Source.Context"] This is a test message
Message Framing
When using TCP, messages can be framed in a variety of ways. Historically, servers have accepted messages terminated with a newline, carriage return, newline and carriage return, or nul
. More fully-featured syslog servers also support a more transparent framing method, where each message is prefixed with its length. This 'octet-counting' method is described in RFC5425 and RFC6587.
To configure the framing method, use the framingType
parameter:
var log = new LoggerConfiguration()
.WriteTo.TcpSyslog("10.10.10.14", framingType: FramingType.OCTET_COUNTING)
.CreateLogger();
Secure Communication
The TcpSink supports TLS-enabled syslog servers that implement RFC5425 (such as Rsyslog). Mutual authentication is also supported. A full example:
var tcpConfig = new SyslogTcpConfig
{
Host = "10.10.10.14",
Port = 6514,
Formatter = new Rfc5424Formatter(),
Framer = new MessageFramer(FramingType.OCTET_COUNTING),
SecureProtocols = SslProtocols.Tls11 | SslProtocols.Tls12,
CertProvider = new CertificateFileProvider("MyClientCert.pfx"),
CertValidationCallback = (sender, certificate, chain, sslPolicyErrors) =>
{
// Check the server certificate here
return true;
}
};
var log = new LoggerConfiguration()
.WriteTo.TcpSyslog(tcpConfig)
.CreateLogger();
SyslogTcpConfig
properties:
SecureProtocols: defines which protocols can be negotiated with the syslog server.
CertProvider: can optionally be set if the syslog server requires client authentication. Various ICertificateProvider
s are provided, to load a certificate from disk, the Certificate Store, or for you to pass in a certificate from any other source.
CertValidationCallback: can optionally be set if you want to perform your own authentication of the syslog server's certificate. If not set, the system default will be used (the certificate must chain to a trusted root in the Certificate Store).
If SecureProtocols
is SecureProtocols.None
,
Additional optional parameters
var log = new LoggerConfiguration()
.WriteTo.UdpSyslog(host: "10.10.10.14", port: 514, appName: "my-app", format: SyslogFormat.RFC5424, facility: SyslogFacility.Local1, outputTemplate: "{Message}")
.CreateLogger();
host and port define the address the remote syslog server is listening at.
app-name is the name of your application, which will be included in the TAG
field when using RFC3164 format, or the APP-NAME
field when using RFC5424 format. If not set, this will be defaulted to the name of the current process.
format defines whether messages are sent in RFC3164, RFC5424 or 'local' format - see the Message Format section above for more information.
facility The syslog 'facility' defines the category of the system or application that is generating the log message. The default is Local0
, but it can be set to any of the values as defined in the syslog RFCs:
outputTemplate Controls the format of the 'body' part of messages. See https://github.com/serilog/serilog/wiki/Formatting-Output.
restrictedToMinimumLevel The minimum level for log events to pass through the sink. See https://github.com/serilog/serilog/wiki/Configuration-Basics#minimum-level.
Copyright © 2018 Ionx Solutions - Provided under the Apache License, Version 2.0.
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. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 is compatible. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 is compatible. 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. |
-
.NETCoreApp 3.1
- Serilog (>= 2.5.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.0)
-
.NETFramework 4.6.2
- Serilog (>= 2.5.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.0)
- System.Runtime.InteropServices.RuntimeInformation (>= 4.3.0)
-
.NETStandard 2.0
- Serilog (>= 2.5.0)
- Serilog.Sinks.PeriodicBatching (>= 2.3.0)
NuGet packages (7)
Showing the top 5 NuGet packages that depend on Serilog.Sinks.SyslogMessages:
Package | Downloads |
---|---|
Oms.Framework
Update page result |
|
PegasusLoggingService
Package Description |
|
CipherTrust.CADP.NETCore
CipherTrust Application Data Protection delivers crypto functions such as key management, signing, hashing and encryption and tokenization services through APIs, as well as access to other services of CipherTrust Manager, so that developers can easily secure data at the application server or big data node. |
|
Pegasus_Logging
Package Description |
|
Swimj.Framework.AspNetCore
Package Description |
GitHub repositories (2)
Showing the top 2 popular GitHub repositories that depend on Serilog.Sinks.SyslogMessages:
Repository | Stars |
---|---|
bitwarden/server
Bitwarden infrastructure/backend (API, database, Docker, etc).
|
|
zoriya/Kyoo
A portable and vast media library solution.
|
Version | Downloads | Last updated |
---|---|---|
4.0.0 | 39,302 | 10/7/2024 |
3.0.2 | 279,388 | 3/26/2024 |
3.0.1 | 515,173 | 7/14/2023 |
3.0.0 | 1,285 | 7/10/2023 |
2.0.9 | 140,319 | 6/6/2023 |
2.0.8 | 13,538 | 5/31/2023 |
2.0.7 | 212,873 | 12/20/2022 |
2.0.6 | 1,111,280 | 8/18/2021 |
2.0.5 | 57,771 | 7/8/2021 |
2.0.4 | 230,514 | 3/24/2021 |
2.0.3 | 48,160 | 2/22/2021 |
2.0.2 | 11,673 | 2/9/2021 |
2.0.1 | 107,144 | 11/20/2020 |
2.0.0 | 12,845 | 10/23/2020 |
1.0.5 | 457,980 | 11/18/2019 |
1.0.4 | 7,166 | 9/21/2019 |
1.0.3 | 187,848 | 5/3/2019 |
1.0.1 | 194,377 | 2/5/2018 |
1.0.0 | 3,383 | 2/4/2018 |