serilog每个功能多个实例

Dar*_*der 6 c# logging serilog asp.net-core

虽然我有一个通用记录器来记录错误,异常等情况,但这些记录器使用滚动文件接收器将内容记录到my- {date} .log中。

但是,我需要另一个实例来对audit- {date} .log进行审计,并需要另一个实例来将perf信息写入perf- {date} .log。

如何使用不同的配置或接收器创建serilog的多个实例?

ade*_*lin 0

您可以按照以下方式执行此操作:

        var loggerConfiguration = new LoggerConfiguration()
                       .MinimumLevel.Verbose()
                       .Enrich.FromLogContext();
        var fileBasePath = "<base log path>";
        loggerConfiguration
            .WriteTo.Console()
            .WriteTo.RollingFile(fileBasePath + "log-info-{Date}.txt")
            .WriteTo.Logger(fileLogger => fileLogger
                    .MinimumLevel.Error()
                    .WriteTo.RollingFile(fileBasePath + "log-error-{Date}.txt"))
            .WriteTo.Logger(fileLogger => fileLogger
                    .Filter.ByIncludingOnly(x =>
                          x.Level == LogEventLevel.Information &&
                          x.Properties.ContainsKey("<Audit Key>"))
                    .WriteTo.RollingFile(fileBasePath + "log-audit-{Date}.txt"));
        Log.Logger = loggerConfiguration.CreateLogger();
Run Code Online (Sandbox Code Playgroud)

注:Audit Key是审计日志中使用的键

  • 我不想进行过滤。我需要一个尊重其自身配置的新实例。 (3认同)