我将此作为我的配置文件:
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="c:\\logging\\EwsSearch.log" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<appendToFile value="true" />
<rollingStyle value="Size" />
<maxSizeRollBackups value="-1" />
<maximumFileSize value="100KB" />
<staticLogFileName value="true" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" />
</layout>
</appender>
</log4net>
<root>
<level value="ERROR" />
<appender-ref ref="RollingFileAppender" />
</root>
</configuration>
然后我用我的C#代码:
public class VsiEWSSearch
{
private static readonly ILog logger = LogManager.GetLogger(typeof(VsiEWSSearch));
public EWSResponse PdeProcessInquiry(int BusinessLineCode, int ClientCaseId, string callingApp)
{
XmlConfigurator.Configure(new System.IO.FileInfo("VSI.EWSSearch.config"));
logger.Error("This is an error");
即使我已调整目录的权限,也不会生成日志文件。怎么了?
答案 0 :(得分:1)
root
节点必须位于log4net
节点内。根据配置文件的类型,您需要进行进一步调整:
如果您有log4net的独立配置文件,则需要删除configuration
和configSections
节点。我还认为除非你指定完整路径,否则log4net不会找到你的配置文件(你当然可以在不对应用程序中的任何路径进行硬编码的情况下这样做)。
如果你只是使用app.config,那么你不需要进一步修改,但你需要在没有任何参数的情况下调用XmlConfigurator.Configure()
方法。
注意:您应该只在应用程序中调用XmlConfigurator.Configure()
方法一次。