.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
相关产品推荐
相关产品推荐

