【发布时间】:2011-01-06 07:40:02
【问题描述】:
我想在类库中实现日志记录功能,该类库本身在 Web 服务中被引用。我尝试添加 app.config 并做了所有需要的事情,但似乎当抛出异常时,log4net 什么也不做。
我的 app.config
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="D:\\mylogfile.txt" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="5" />
<maximumFileSize value="10MB" />
<staticLogFileName value="true" />
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="test" />
</filter>
<filter type="log4net.Filter.StringMatchFilter">
<stringToMatch value="error" />
</filter>
<filter type="log4net.Filter.DenyAllFilter" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %level %logger - %message%newline%exception" />
</layout>
</appender>
<root>
<level value="INFO"/>
<appender-ref ref="RollingFileAppender"/>
<appender-ref ref="ConsoleAppender" />
</root>
</log4net>
在 AssemblyInfo.cs 中:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config")]
在 LogManager.cs 中:
private static readonly ILog Log = log4net.LogManager.GetLogger
(MethodBase.GetCurrentMethod().DeclaringType);
public static void WriteLog(Exception ex)
{
Log.Error(ex);
}
你能告诉我有什么问题吗?如何让 log4net 为我的类库工作?
谢谢
【问题讨论】:
-
代码在您调用 WriteLog 的位置看起来如何?
-
顺便说一句,您是否尝试将根级别设置为 ALL,并尝试删除 RollingFileAppender 上的所有过滤器。
-
@Pauli:我按照你的建议试过了,还是不行:)
-
我假设你明白 app.config 在构建时被重命名为程序集名称?
-
我检查了 bin 文件夹,app.config 有它的名字:)
标签: c# .net log4net log4net-configuration