【发布时间】:2016-03-16 15:11:17
【问题描述】:
对另一个 log4net 配置问题表示歉意。 我有一个具有此方法的引用库:
public static ILog Logger = LogManager.GetLogger(typeof(MyClass));
public void InitializeLog()
{
XmlConfigurator.Configure(new FileInfo("log4net.xml"));
Logger.Info("Starting");
}
在使用此 DLL 的项目中,我在项目的根级别有 log4net.xml。它看起来像这样:
<log4net>
<logger name="NHibernate">
<level value="DEBUG" />
</logger>
<logger name="NHibernate.SQL">
<level value="DEBUG" />
</logger>
<appender name="Console" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%newline%newline" />
</layout>
</appender>
<appender name="RollingFile" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="C:\log\project.log" />
<appendToFile value="true" />
<maximumFileSize value="10000KB" />
<maxSizeRollBackups value="5" />
<layout type="log4net.Layout.PatternLayout">
<footer value =" "/>
<conversionPattern value="%date %level - %message%newline%newline" />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="RollingFile" />
<appender-ref ref="Console" />
</root>
</log4net>
该项目在尝试记录任何内容之前调用InitializeLog()。但是,它甚至不会在开始时记录“正在启动”消息。当我调试该方法时,在 Logger 对象中我看到Configured = false。我感觉它与 xml 文件的路径有关,因为它在使用此库作为项目引用而不是外部引用的项目中运行良好(此处不是选项。)关于配置失败原因的想法.?
【问题讨论】:
-
log4net.xml 文件是否标记为“复制到输出目录”? (您可以检查 FileInfo 的
Exists属性以查看它是否拾取) -
@stuartd,是的,它设置为始终复制
-
可以是任何东西。使用链接的问题找出您的错误。
标签: c# log4net log4net-configuration