包- Serilog.Sinks.Udp |平台- .NET Framework 4.6.1、.NET Standard 1.3/2.0/2.1
Log4jTextFormatter
Log4netTextFormatter
在以下示例中,接收器将网络上的 UDP 包发送到端口 7071 上的本地主机。
Serilog . ILogger log = new LoggerConfiguration ( )
. MinimumLevel . Verbose ( )
. WriteTo . Udp ( "localhost" , 7071 , AddressFamily . InterNetwork )
. CreateLogger ( ) ;
与 Serilog.Settings.Configuration 结合使用,可以在appsettings.json
中配置接收器。
{
"Serilog" : {
"MinimumLevel" : " Verbose " ,
"WriteTo" : [
{
"Name" : " Udp " ,
"Args" : {
"remoteAddress" : " localhost " ,
"remotePort" : 7071 ,
"family" : " InterNetwork "
}
}
]
}
}
与 Serilog.Settings.AppSettings 结合使用,可以在 XML <appSettings>
中配置接收器。
<? xml version = " 1.0 " encoding = " utf-8 " ?>
< configuration >
< appSettings >
< add key = " serilog:minimum-level " value = " Verbose " />
< add key = " serilog:using:Udp " value = " Serilog.Sinks.Udp " />
< add key = " serilog:write-to:Udp " />
< add key = " serilog:write-to:Udp.remoteAddress " value = " localhost " />
< add key = " serilog:write-to:Udp.remotePort " value = " 7071 " />
< add key = " serilog:write-to:Udp.family " value = " InterNetwork " />
</ appSettings >
</ configuration >
生成日志事件只是故事的一半。除非您在开发或生产中使用它们对您有利,否则实际上没有必要首先生产它们。
在开发过程中,我一直将 UDP 包发送到环回地址,并使用 Log2Console 来可视化它们。它支持UDP接收器,并允许我根据我的需要进行过滤和搜索。
当您作为一个团队同意将日志事件发送到多播地址时,将其提升到一个新的水平,使所有团队成员都可以访问它们。这对于希望监控正在运行的应用程序的所有实例的日志事件的质量保证人员来说是有益的。
事件格式化程序是一个强大的输出模板。它负责将单个日志事件转换为文本表示。它可以将日志事件序列化为 JSON、XML 或任何符合接收者期望的其他内容。
该接收器预加载了两个基于 XML 的事件格式化程序。一种是匹配 Log2Console 期望的 log4j 模式,另一种是匹配 Log4View 期望的 log4net 模式。
Log4jTextFormatter
日志事件根据 Log2Console 期望的 log4j XML 模式进行格式化。
< log4j : event logger = " Some.Serilog.Context " timestamp = " 1184286222308 " level = " ERROR " thread = " 1 " >
< log4j : message >Something failed</ log4j : message >
< log4j : throwable >An exception describing the failure< log4j : throwable >
</ log4j : event >
Log4netTextFormatter
日志事件根据 Log4View 期望的 log4net XML 模式进行格式化。
< log4net : event logger = " Some.Serilog.Context " timestamp = " 2017-09-01T22:00:00.000+02:00 " level = " DEBUG " thread = " 1 " username = " MACHINEusername " domain = " dotnet " >
< log4net : locationInfo class = " Some.Serilog.Context " method = " System.String Get(Int32) " />
< log4net : properties >
< log4net : data name = " log4net:HostName " value = " MACHINE " />
</ log4net : properties >
< log4net : message >Something went wrong.</ log4net : message >
< log4net : throwable >System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.</ log4net : throwable >
</ log4net : event >
以下示例应用程序演示了该接收器在各种上下文中的用法:
如果要在项目中包含 UDP 接收器,可以直接从 NuGet 安装它。
要安装接收器,请在程序包管理器控制台中运行以下命令:
PM> Install-Package Serilog.Sinks.Udp
如果这个项目帮助您保持生产力并省钱,您可以请我一杯咖啡:)
感谢 JetBrains 通过为您的产品提供免费许可证来支持开源社区的重要举措。