首页 > 解决方案 > Serilog 不记录调试日志

问题描述

我正在使用带有 asp.net core 3.1.5 的 Serilog

Func<LogEvent, bool> debugInfoRangeFilter = e => e.Level == LogEventLevel.Debug || e.Level == LogEventLevel.Information;

Log.Logger = new LoggerConfiguration()
    .MinimumLevel.Verbose()
    .WriteTo.Logger(c => c.Filter.ByIncludingOnly(debugInfoRangeFilter)
        .WriteTo.Async(a =>
        {
            a.File($"{AppDomain.CurrentDomain.BaseDirectory}\\Logs\\log.txt",
                rollOnFileSizeLimit: true,
                retainedFileCountLimit: 10,
                fileSizeLimitBytes: 10 * 1024 * 1024); // 10MB
        }))
    .WriteTo.Logger(c => c.Filter.ByExcluding(debugInfoRangeFilter)
        .WriteTo.Async(a =>
        {
            a.File($"{AppDomain.CurrentDomain.BaseDirectory}\\Logs\\error.txt",
                rollOnFileSizeLimit: true,
                retainedFileCountLimit: 10,
                fileSizeLimitBytes: 10 * 1024 * 1024); // 10MB
        }))
    .CreateLogger();

我遇到的问题是调试日志条目未写入 log.txt 文件。我在任何地方都看不到它们,而所有其他级别都已成功编写。

我称之为

 logger.LogDebug("Log Debug");
 logger.LogInformation("Log Info");

Log Info写入log.txtLog.Debug是不存在的。有人知道我在做什么错吗?

更新#1:

  <ItemGroup>
    <PackageReference Include="Serilog" Version="2.9.0" />
    <PackageReference Include="Serilog.Extensions.Logging" Version="3.0.1" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="3.1.0" />
    <PackageReference Include="Serilog.Sinks.Async" Version="1.4.0" />
    <PackageReference Include="Serilog.Sinks.File" Version="4.1.0" />
  </ItemGroup>

标签: c#.netasp.net-core.net-coreserilog

解决方案


推荐阅读