Mar*_*rco 13 .net logging serilog
我是Serilog的新手,我很难弄清楚如何使用上下文功能.当我运行下面的代码时,输出文件不包含报告ID.我缺少什么想法?
var logger = new LoggerConfiguration()
.WriteTo
.File(@"C:\Log.txt")
.CreateLogger()
.ForContext("Report ID", 10);
logger.Information("Test");
Run Code Online (Sandbox Code Playgroud)
Nic*_*rdt 15
并非附加到日志事件的所有属性都将由连接到记录器的所有接收器呈现; 此处使用的文件接收器仅包括时间戳,级别,消息等.
要将报告ID添加到文件中,请将其包含在接收器中outputTemplate:
var logger = new LoggerConfiguration()
.WriteTo.File(@"C:\Log.txt",
outputTemplate: "{Timestamp:u} [{Level}] ({ReportId}) {Message}{NewLine}{Exception}")
.CreateLogger()
.ForContext("ReportId", 10);
logger.Information("Test");
Run Code Online (Sandbox Code Playgroud)
这将包括每条消息中的报告ID.
ForContext通常用于创建一个短暂的临时范围; 如果您想在所有可以使用的消息上使用相同的属性Enrich.WithProperty():
var logger = new LoggerConfiguration()
.Enrich.WithProperty("ReportId", 10);
.WriteTo.File(@"C:\Log.txt",
outputTemplate: "{Timestamp:u} [{Level}] ({ReportId}) {Message}{NewLine}{Exception}")
.CreateLogger()
Run Code Online (Sandbox Code Playgroud)
平面文件是使用结构化日志快速启动和运行的好方法,但是使用更适合结构化存储的数据存储(例如CouchDB,RavenDB或者Seq)将使基于属性值查看和关联事件变得更好.
| 归档时间: |
|
| 查看次数: |
13626 次 |
| 最近记录: |