【发布时间】:2020-06-04 11:26:08
【问题描述】:
在 App.Config 中,我为我的控制台应用程序声明了一个配置部分:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
并配置一个ConsoleAppender:
<log4net>
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
</layout>
</appender>
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
我们还在日志实用程序类中声明了一个 RollingFile 附加程序,它是我们在应用启动时的标准代码库的一部分(不容易修改):
_hierarchy = (Hierarchy)LogManager.GetRepository();
_rollingFileAppender = new RollingFileAppender();
... //_rollingFileppender options
_rollingFileAppender.ActivateOptions();
_hierarchy.Root.AddAppender(_rollingFileAppender);
_hierarchy.Configured = true;
当我运行应用程序时,我看到日志条目按预期写入文件,但没有写入控制台。
当我在调试器中检查我的ILog 实例时,我在Logger.Appenders 中根本看不到任何附加程序,但我确实看到RollingFileAppender 实例是Root.Appenders 中的唯一元素。
log4net 是我习惯“它只是工作”的东西 - 配置 和 代码添加附加程序是否存在一些不兼容,或者我需要将 LogManager 获取到 look 在 app.config 中?
【问题讨论】:
-
我在查看 blog.elmah.io/… 并没有看到任何明显的我遗漏的东西
-
如果您评论添加滚动附加程序的代码,控制台是否有效?