【发布时间】:2018-07-13 11:50:34
【问题描述】:
我有一个从服务总线接收消息的小型应用程序,它可以通过几种不同类型的事件为不同的用户发送消息。根据事件的类型,调用不同的函数。我在每个函数中记录信息。
我目前有这个:
var logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console(outputTemplate:
"[{Timestamp:HH:mm:ss} {Level:u3}] {Message}{NewLine}{Exception}")
.WriteTo.Loggly()
.CreateLogger();
...
// logging an event
Log.Information("{UserId} {Event} - Here is my message", "123", "Test Event");
这很好用,但是因为对于这个应用程序,每个日志都将包含日志中的 UserId 和 Event 数据,我想我可以将它们添加到我的输出模板中,以使我的日志记录代码更简洁一些。所以我试过这个:
var logger = new LoggerConfiguration()
.MinimumLevel.Information()
.WriteTo.Console(outputTemplate:
"[{Timestamp:HH:mm:ss} {Level:u3}] {UserId} {Event} - {Message}{NewLine}{Exception}")
.WriteTo.Loggly()
.CreateLogger();
...
// logging an event
Log.Information("Here is my message", "123", "Test Event");
Log.Information("Here is my message", new { UserId = "123", Event = "Test Event"});
这些都不起作用,它输出的只是我的消息,它不会通过我传递给它的 UserId 或 Event。
我做错了吗?或者有没有办法做到这一点?
【问题讨论】: