2013-05-27 20 views
0

配置我的log4net的: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

你必须阅读你的配置:

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

假定你的名字配置文件是log4net.xml。 log4net.xml文件必须位于bin目录中。

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

log4net configuration documentation

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

// 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. 
+0

'log4net'有没有类'XmlConfigurator'。在'log4net.Config'类没有参数作为字符串 – LuckSound

+0

对不起,它必须是:log4net.Config.XmlConfigurator – Peter

+0

但重载没有parametr作为字符串...也许它为.net-4.0? – LuckSound