在 App.Config 中,我为我的控制台应用程序声明了一个配置部分:
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
Run Code Online (Sandbox Code Playgroud)
并配置一个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>
Run Code Online (Sandbox Code Playgroud)
我们还在RollingFile一个日志工具类中声明了一个appender,它是 app-startup 标准代码库的一部分(不容易修改):
_hierarchy = (Hierarchy)LogManager.GetRepository();
_rollingFileAppender = new RollingFileAppender();
... //_rollingFileppender options
_rollingFileAppender.ActivateOptions();
_hierarchy.Root.AddAppender(_rollingFileAppender);
_hierarchy.Configured = true;
Run Code Online (Sandbox Code Playgroud)
当我运行应用程序,我看到日志条目被写入文件作为预期,但没有数据被写入到控制台。
当我ILog在调试器中检查我的实例时,我根本看不到 appender,Logger.Appenders但我确实将RollingFileAppender实例视为Root.Appenders.
log4net的是我已经习惯了“它就可以工作” -在那里有一些配置不兼容和代码添加追加程序,或者一些线我需要LogManager到看的的app.config?