2011-08-01 208 views
2

我試圖在IIS 7.5/Server 2008 R2上使用log4net和RollingFileAppender。但是,從我的舊的IIS 6/Server 2003框配置似乎不再工作,我根本沒有看到任何日誌文件被創建,這裏是我已經設置:log4net RollingFileAppender和IIS 7.5

在Web.config(裏面<configSections>

<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 

在同一個文件(裏面<configuration>

<log4net> 
     <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> 
      <layout type="log4net.Layout.PatternLayout"> 
       <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
      </layout> 
     </appender> 
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="..\\logs\\App" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <param name="StaticLogFileName" value="false" /> 
     <datePattern value=".yyyyMMdd.lo\g" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date | [%thread] | %-5level | %logger | %message %newline" /> 
     </layout> 
    </appender> 
    <logger name="AppLogger" additivity="false"> 
     <level value="All"/> 
     <appender-ref ref="ConsoleAppender"/> 
     <appender-ref ref="LogFileAppender"/> 
    </logger> 
</log4net> 

的最後內部Global.asax我:

protected void Application_Start() 
{ 
    log4net.Config.XmlConfigurator.Configure(); 
} 

這在Server 2003上工作,我可以做正常的程序獲取對記錄器的引用並調用各種方法(調試,錯誤等)。使用IIS 7.5/Server 2008,所有代碼都可以正常執行(即所有頁面仍然正常),但日誌輸出目錄中沒有日誌。

任何人之前看到過/有解決方法?

謝謝!

回答

7

這很可能是權限問題其中正在寫入日誌文件的進程下運行的用戶(ASPNET)對您嘗試登錄的目錄沒有寫入權限。您應該確保該用戶有寫權限到您的配置文件夾。

+2

我可以發誓,我檢查了 - 但我複查,併爲您指出我需要修改/寫權限添加到IIS用戶帳戶(即IIS_IUSRS,不ASPNET)。似乎現在正在工作......謝謝! – debracey

+0

是的,我並不完全確定用戶。感謝您指出了這一點。 –

0

請注意日誌文件的相對路徑。
使用絕對路徑嘗試使用具有正確權限的文件夾。 例如:

<file value="C:\\logs\\App" />