2013-05-27 21 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