ServiceStack结构化日志记录

时间:2020-06-07 09:23:11

标签: servicestack

在使用例如Serilog与Servicestack?

Serilog和NLog的示例都具有Log.Information("Hello World from {FirstName}", "Thomas");的形式,我无法在ServiceStack中找到匹配的方法签名。

1 个答案:

答案 0 :(得分:3)

请参阅enhanced Serilog Logging APIs的日志记录文档,而此existing StackOverflow answer显示了Serilog Enrichers示例。

SerilogLoggerTests.cs显示了使用Serilog的不同示例:

Parent
   Item1
     Subitem1
     Subitem2
   Item2
   Item3

和带有自定义属性的Log Context示例:

var log = new SerilogLogger(GetType());

const string message = "Error Message";
const string messageFormat = "Message Format: message: {0}, exception: {1}";

var ex = new Exception();
log.Info(message);
log.Info(message, ex);
log.InfoFormat(messageFormat, message, ex.Message);
log.Info(ex, messageFormat, messageFormat, ex);

还有var log = new SerilogLogger(new LoggerConfiguration() .WriteTo.Sink(sink).CreateLogger()); var messageTemplate = "Testing adding {prop2} props"; log.ForContext("prop", "value").InfoFormat(messageTemplate, "awesome"); 个API来分配自定义属性,有关示例,请参见Serilog's Enrichment docs