番禺高端网站建设,山东省住房和城乡建设厅地址,电子工程网名又知道你是做工程,新开传奇网站曾劲松Serilog .net下的新兴的日志框架
1.Serilog简介
Serilog 是针对 .NET 应用程序的流行日志记录框架。它以其灵活性、易用性和可扩展性而闻名。借助 Serilog#xff0c;开发人员可以轻松记录应用程序中的事件、错误和消息。它支持结构化日志记录#xff0c;能够以结构化格式存…Serilog .net下的新兴的日志框架
1.Serilog简介
Serilog 是针对 .NET 应用程序的流行日志记录框架。它以其灵活性、易用性和可扩展性而闻名。借助 Serilog开发人员可以轻松记录应用程序中的事件、错误和消息。它支持结构化日志记录能够以结构化格式存储日志数据便于查询和分析。
Serilog 的一个关键特性是其能够使用不同的“sinks”日志事件的目标位置。这些“sinks”可以包括控制台、文件、数据库以及第三方服务如 Seq 或 Elasticsearch。
开发人员还可以通过 Serilog 为日志事件添加额外的属性和上下文信息从而更容易地追踪问题并理解应用程序的流程。Serilog 还支持不同的输出格式比如 JSON 或纯文本进一步增强了其灵活性。
2.添加需要的包引用 3.编写整个日志代码
// 创建日志
Log.Logger new LoggerConfiguration().WriteTo.File(log.txt,outputTemplate: {Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz}[{Level:u3}] {Message:ij}{Exception}{NewLine}).CreateLogger();// 消除日志
Log.CloseAndFlushAsync();4.使用日志代码
Log.Information(Hello, world!);int a 10, b 0;
try
{Log.Debug(Dividing {A} by {B}, a, b);
}
catch (Exception ex)
{Log.Error(ex.Message);Log.Error(ex, Something went wrong);
}
finally
{await Log.CloseAndFlushAsync();
}5.输出模板中可以显示许多内置属性
Exception 完整的异常消息和堆栈跟踪跨多行格式化。如果没有与事件关联的异常则为空。 Level{Level:u3}{Level:w3} 日志事件级别格式为完整级别名称。对于更紧凑的级别名称请分别使用三个字符的大写或小写级别名称等格式。 Message:l:j 日志事件的消息呈现为纯文本。格式说明符关闭字符串的引用并对任何嵌入的结构化数据使用 JSON 样式呈现。 NewLineSystem.Environment.NewLine 换行标志 Properties:j 未出现在输出中其他位置的所有事件属性值。使用该格式来使用 JSON 呈现。 TimestampDateTimeOffset 事件的时间戳以 .DateTimeOffset
6.日志demo
2023-11-30 14:30:25.987 08:00 [INF] Hello, world!
2023-11-30 14:30:26.062 08:00 [DBG] Dividing 10 by 0
2023-11-30 14:30:26.107 08:00 [ERR] Something went wrong
System.DivideByZeroException: Attempted to divide by zero.at Program.Main() in F:\学习\Serilog\ConsoleApp\Program.cs:line 212023/11/30