log4net filepath为空

时间:2013-05-27 14:09:52

标签: .net .net-3.5 log4net log4net-appender

我的log4net的配置:

<log4net>
<appender name="ItemsChangeLogFileAppender" type="log4net.Appender.SitecoreLogFileAppender, Sitecore.Logging">
  <file value="\logs\ItemChangeLogs\itemLog.{date}.txt"/>
  <appendToFile value="true"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%d %m%n"/>
  </layout>
</appender>
<root>
  <priority value="ALL"/>
  <appender-ref ref="ItemsChangeLogFileAppender"/>
</root>
<logger name="ItemsChangeLogger">
  <level value="ALL"/>
  <appender-ref ref="ItemsChangeLogFileAppender"/>          
</logger>

类:

public class LogEvents
{
    private static readonly ILog log = LogManager.GetLogger("ItemsChangeLogger");

    public LogEvents()
    {
        XmlConfigurator.Configure();

        log.Info("Some message");
    }

    public void Test(object sender, EventArgs args)
    {
        log.Info("Test");
    }
}

我想阅读我的日志,但找不到我的文件。

在某些问题(here)中,我使用了回答,但文件路径为空。如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您必须阅读配置:

log4net.Config.XmlConfigurator.Configure("log4net.config");

假设您的配置文件的名称是log4net.xml。 log4net.xml文件必须位于bin目录中。

\ logs \ ItemChangeLogs文件夹必须在您的文件系统上激活。我会将其更改为链接:c:\ logs \ ItemChangeLogs,因此您知道log4net将在您的c驱动器上找到目录,而不是其他驱动器。

log4net configuration documentation

我通常使用assambly.cs文件中的属性配置log4net,如:

// Configure log4net using the .config file
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
// This will cause log4net to look for a configuration file
// called TestApp.exe.config in the application base
// directory (i.e. the directory containing TestApp.exe)
// The config file will be watched for changes.