2012-01-20 32 views
8

log4net的是報告:log4net的,怎麼了此配置

沒有追加程序可以用於記錄log4net的發現:記錄器:請 正確初始化log4net的系統。

我有一個獨立的log4net的配置文件:

<!--?xml version="1.0"?--> 
<configuration> 
    <configsections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821" /> 
    </configsections> 
    <log4net> 
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="c:\temp\log.txt" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="5MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
     </layout> 
    </appender> 


    </log4net> 
</configuration> 

..和這個應用程序的起始碼

private static ILog logger; 
protected void Application_Start(object sender, EventArgs e) 
{ 
    ////This tells log4net where to go and look for its configuration file and also to watch it for any changes 
    log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(@"C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\Config\Moogle\Log4Net.config")); 
    logger = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); 
    logger.Debug("Application_Start Fired"); 

回答

18

你只定義了一個appender。你還需要定義一個根記錄器和一個記錄器來使用appender(如果你只需要一個記錄器,它們可以是同一個記錄器)。將以下根元素添加到您的log4net配置中。

<root> 
    <level value="DEBUG" /> 
    <appender-ref ref="RollingLogFileAppender" /> 
</root> 
+3

不想打擾一個5歲的問題 - 但其他人可能會覺得它很有用,因爲我在浪費了大約兩個小時才意識到這一點。顯然appender的名字和appender-ref的值是區分大小寫的。我在appender的定義中定義了'ref =「ADONetAppender」'在根目錄中並且'

+0

沒有根元素是我的問題。我能夠創建日誌文件,但浪費了2個小時嘗試所有不同類型的初始化問題,配置問題等。這解決了我的問題 – hanzolo