2016-06-13 144 views
1

我知道可以在app.config文件(AppSettings部分)中设置Serilog接收器,标量类型非常简单,但是如何处理复杂类型(IFormatProvider等等。)。有人知道如何处理这个问题,有没有可能?如何从app.config文件中设置Serilog中的formatProvider属性

我试图模仿这个例子

ILogger logger = new LoggerConfiguration() 
    .Enrich.WithExceptionDetails() 
    .WriteTo.Sink(new RollingFileSink(
     @"C:\logs", 
     new JsonFormatter(renderMessage: true)) 
    .CreateLogger(); 

,但只有使用的app.config。

回答

1

对此,您可以使用类似JsonRollingFile的东西。

<configuration> 
    <appSettings> 
    <add key="serilog:using:Json" value="Serilog.Sinks.Json" /> 
    <add key="serilog:write-to:JsonRollingFile.pathFormat" value="C:\Logs\myapp-{Date}.jsnl" /> 
    </appSettings> 
</configuration> 
+0

嗨@Nicholas Blumhardt, 因为'JsonRollingFile'片已经过时的2.1+版本的,你怎么能设置使用AppSettings配置JsonFormatter属性renderMessage为真? 我试过这样,但它没有工作: '

+0

嗨迈克尔 - 这里有一个例子,应该有所帮助:https://github.com/serilog/serilog-formatting-compact#getting-started –

+0

嗨@Nicholas Blumhardt, 据我所知,这是关于'CompactJsonFormatter'。但是我想用'renderMessage'参数设置为true的常规'JsonFormatter'。我找不到任何使用appsettings.config的示例。我在这里错过了什么吗?是不是可以通过XML配置来设置这个参数? –

相关问题