2

我正在尝试使用 AutoFac 将 Serilog 与 Raygun 接收器一起使用

我使用https://groups.google.com/forum/#!topic/serilog/R23B8CLso9Q成功地使用 AutoFact 配置 Serilog

如果我只想将跟踪/调试/信息记录到日志滚动文件并将警告/错误/致命记录到滚动文件和 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 我不想要的。

有任何想法吗

4

2 回答 2

0

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

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

您还需要确保 Raygun 程序集位于项目的构建输出目录中,并使用“使用”条目引用,例如:

<add key="serilog:using" value="Serilog.Sinks.Raygun" />
于 2015-02-02T21:04:16.873 回答
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" />
于 2021-01-06T13:36:27.607 回答