如何使用Serilog与Raygun和Autofac区分日志和错误

时间:2015-02-02 02:03:34

标签: autofac serilog raygun.io

我正在尝试使用AutoFac

将Serilog与Raygun接收器一起使用

我使用https://groups.google.com/forum/#!topic/serilog/R23B8CLso9Q

成功配置了使用AutoFact的Serilog

如果我想将 trace / debug / info 仅记录到日志滚动文件而将警告/错误/致命记录到滚动文件和raygun

如何配置日志?

这是我的实际情况:

public static ILogger CreateLogger()
        {
            var config = new LoggerConfiguration()
                            .ReadAppSettings();

            InitialiseGlobalContext(config);

            return config.CreateLogger();
        }

使用此web.config条目:

<add key="serilog:minimum-level" value="Verbose" />
<add key="serilog:write-to:RollingFile.path" value="D:\WebRole\Logs\file-{Date}.txt" />
<add key="serilog:write-to:RollingFile.fileSizeLimitBytes" value="1024" />
<add key="serilog:write-to:RollingFile.retainedFileCountLimit" value="10" />
<add key="serilog:write-to:RollingFile.outputTemplate" value="{Timestamp} [{Level}] [{MachineName},{ApplicationName},{RuntimeVersion}] {Message}{NewLine}{Exception}" />

由于conf是全局的,如果我添加.WriteTo.Raygun(),它会将 trace / debug / info 记录到raygun我不希望这样。

任何想法

2 个答案:

答案 0 :(得分:0)

您应该能够通过Raygun接收器添加额外的配置条目以限制事件:

<add key="serilog:write-to:Raygun.restrictedToMinimumLevel" value="Warning" />

您还需要确保Raygun程序集位于项目的构建输出目录中,并使用&#34;使用&#34;条目如:

<add key="serilog:using" value="Serilog.Sinks.Raygun" />

答案 1 :(得分:0)

对于任何人(像我一样),答案就是@NicholasBlumhardt 所描述的。然而,我也犯了一个错误,即在使用后没有立即使用 applicationKey

<add key="serilog:using:Raygun" value="Serilog.Sinks.Raygun" />
<add key="serilog:write-to:Raygun.applicationKey" value="MYRAYGUNAPPLICATIONKEY" />
<add key="serilog:write-to:Raygun.restrictedToMinimumLevel" value="Information" />