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

.NET 7控制台应用Log4Net+Extensions.Logging的LogDebug无输出问题

.NET 7控制台应用集成Log4Net后无法输出Debug日志

在.NET 7控制台应用中集成Log4Net与Microsoft.Extensions.Logging.Log4Net.AspNetCore后,调用ILogger.LogDebug()无法输出日志。已确认log4net.config中<level>设置为DEBUG,但调试日志仍无法输出到控制台或文件;将级别改为WARN时,能正常屏蔽Info级别日志,说明Log4Net的级别过滤逻辑部分生效。已通过Log4Net调试输出验证,没有其他配置文件覆盖设置。

使用的扩展及版本

Log4Net : 2.0.15
Microsoft.Extensions.Logging: 7.0.0
Microsoft.Extensions.Logging.Console : 7.0.0
Microsoft.Extensions.Logging.Log4Net.AspNetCore : 6.1.0

Program.cs配置代码

var builder = Host.CreateApplicationBuilder();
...
builder.Logging.ClearProviders();
var loggingOptions = new Log4NetProviderOptions()
{
    Watch = false,
    Log4NetConfigFileName = Path.Combine(AppContext.BaseDirectory, "log4net.config")
};
builder.Logging.AddLog4Net(loggingOptions);

Log4Net配置片段

<root>
  <level value = "DEBUG" />
  <appender-ref ref="console" />
  <appender-ref ref="file" />
</root>

日志调用代码

_logger.LogCritical("Critial message");
_logger.LogDebug("Debug message");
_logger.LogError("Error message");
_logger.LogInformation("Information message");
_logger.LogTrace("Trace message");
_logger.LogWarning("Warning message");

实际输出

2023-07-17 08:04:22,325 [1] FATAL myapp.console.Verbs.TestVerb - Critical message
2023-07-17 08:04:22,381 [1] ERROR myapp.console.Verbs.TestVerb - Error message
2023-07-17 08:04:22,383 [1] INFO myapp.console.Verbs.TestVerb - Information message
2023-07-17 08:04:22,399 [1] WARN myapp.console.Verbs.TestVerb - Warning message

Log4Net调试输出片段

log4net: log4net assembly [log4net, Version=2.0.15.0, Culture=neutral, PublicKeyToken=669e0ddf0bb1aa2a].
log4net: defaultRepositoryType [log4net.Repository.Hierarchy.Hierarchy]
log4net: Creating repository for assembly [Microsoft.Extensions.Logging.Log4Net.AspNetCore, Version=6.1.0.0, Culture=neutral, PublicKeyToken=5d1104efbd0e675d]
log4net: Assembly [Microsoft.Extensions.Logging.Log4Net.AspNetCore, Version=6.1.0.0, Culture=neutral, PublicKeyToken=5d1104efbd0e675d] Loaded From [C:\git\myapp\myapp.console\bin\Debug\net7.0\win-x64\Microsoft.Extensions.Logging.Log4Net.AspNetCore.dll]
log4net: Assembly [Microsoft.Extensions.Logging.Log4Net.AspNetCore, Version=6.1.0.0, Culture=neutral, PublicKeyToken=5d1104efbd0e675d] does not have a RepositoryAttribute specified.
log4net: Assembly [Microsoft.Extensions.Logging.Log4Net.AspNetCore, Version=6.1.0.0, Culture=neutral, PublicKeyToken=5d1104efbd0e675d] using repository [log4net-default-repository] and repository type [log4net.Repository.Hierarchy.Hierarchy]
...
log4net: Logger [root] Level string is [DEBUG].
log4net: Logger [root] level set to [name="DEBUG",value=30000].
...
log4net: Opening file for writing [C:\ProgramData\myapp\log.txt] append [True]
log4net: Created Appender [file]
log4net: Adding appender named [file] to logger [root].

级别改为WARN时的情况

Log4Net配置片段

<root>
  <level value = "WARN" />
  <appender-ref ref="console" />
  <appender-ref ref="file" />
</root>

实际输出

2023-07-17 08:18:43,480 [1] FATAL myapp.console.Verbs.TestVerb - Critial message
2023-07-17 08:18:43,522 [1] ERROR myapp.console.Verbs.TestVerb - Error message
2023-07-17 08:18:43,525 [1] WARN myapp.console.Verbs.TestVerb - Warning message

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 00:12:03