我是Log4Net的新手。我正在尝试使用此记录器来记录我的WCF服务。
我无法使用此功能,因为未创建日志文件。
它正在建设成功,不会抛出任何错误。
以下是我在app.config中的配置:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Utilities.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
</sectionGroup>
</configSections>
<log4net>
<root>
<level value="DEBUG"/>
<appender-ref ref="LogFileAppender" />
</root>
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<file value="c:\Avinash" />
<datePattern value="dd.MM.yyyy'.log'" />
<staticLogFileName value="false" />
<appendToFile value="true" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="10" />
<maximumFileSize value="5MB" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</log4net>
是否有任何错误。我这么久都试着这个。但是,无法找出问题所在。
有什么建议吗?
此外,这是我为记录功能创建的类:
namespace Utilities
{
public class Logger
{
private static readonly log4net.ILog logger = log4net.LogManager.GetLogger
(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
public void log(string strErrorMessage)
{
logger.Debug(strErrorMessage);
}
}
}
这是一种正确的方法吗?
我在异常块中调用log方法,我需要在服务中记录异常。
请提出您对此实施的看法
答案 0 :(得分:7)
在尝试通过调用
来记录任何内容之前,您应该显式初始化记录器XmlConfigurator.Configure();
还有另一种初始化记录器的方法(例如,通过使用属性);请参阅this question。
答案 1 :(得分:7)
<root>
<appender-ref ref="LogFileAppender" />
</root>
你有错误。它应该是:
<root>
<appender-ref ref="RollingLogFileAppender" />
</root>