You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Trace/Debug日志级别无法映射到事件查看器对应级别问题咨询

解决Microsoft.Extensions.Logging.EventLog Trace/Debug级别映射问题

默认情况下,Microsoft.Extensions.Logging.EventLog会把Trace和Debug级别的日志都映射到EventLog的Information级别,导致事件查看器里这两类日志都显示为“信息”,而非预期的“详细(Verbose)”。要解决这个问题,需要手动自定义日志级别映射规则。

解决步骤

1. 自定义级别映射配置

在项目的日志配置代码中,覆盖默认的级别映射,将Trace/Debug映射到Verbose级别:

var builder = WebApplication.CreateBuilder(args);

// 配置EventLog日志的级别映射
builder.Logging.AddEventLog(options =>
{
    // 清空默认映射规则
    options.LevelMapping.Clear();
    
    // 手动添加自定义映射
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Trace, EventLevel.Verbose));
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Debug, EventLevel.Verbose));
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Information, EventLevel.Informational));
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Warning, EventLevel.Warning));
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Error, EventLevel.Error));
    options.LevelMapping.Add(new LogLevelMapping(LogLevel.Critical, EventLevel.Critical));
    
    // 允许记录Trace及以上级别的日志
    options.Filter = (_, level) => level >= LogLevel.Trace;
});

2. 确保事件查看器显示Verbose级别

打开事件查看器后,在日志筛选设置中勾选**详细(Verbose)**选项,否则映射后的Verbose级别日志可能不会显示。

验证效果

运行你的测试代码:

logger.LogTrace("trace");
logger.LogDebug("debug");
logger.LogInformation("info");

此时事件查看器中,trace和debug日志会显示为详细(Verbose)级别,info日志保持信息级别,符合预期。

内容的提问来源于stack exchange,提问作者spottedmahn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:55:32