2010-05-08 217 views
3

我有一個單獨的Log4Net.config文件。我加log4net配置問題

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log4Net.config", Watch = true)] 

到的AssemblyInfo.cs

當我運行調試模式下的應用,lognet被記錄。當我將應用程序發佈到IIS時,lognet不會記錄任何內容。

我有以下也:

BasicConfigurator.Configure(); // in a method 
private static readonly ILog _logger = LogManager.GetLogger(typeof(_Default)); // for the instance 

什麼會是什麼原因呢?

回答

6

可能是AppPool身份用戶沒有權限寫入日誌文件/目錄(假設您使用的是文件appender)。

下面介紹如何檢查應用程序池的用戶帳戶:

  • 開始 - >運行 - >「COMPMGMT.MSC」(或右鍵單擊「我的電腦」,選擇「管理」)
  • 導航到「服務和應用程序」 - >「Internet信息服務(IIS)管理器」
  • 在「網站」下找到您的網站並右鍵單擊 - >屬性
  • 在虛擬目錄選項卡上,記下「應用程序池「設定
  • 取消t他的對話框,並導航到IIS管理器中的「應用程序池」
  • 右鍵單擊上面提到的應用程序池,選擇「屬性」,然後選擇「標識」選項卡
  • 這顯示運行該站點的用戶帳戶。
  • 現在,我的建議是檢查您嘗試寫入日誌的文件夾權限,並確保應用程序池用戶具有對該文件夾的寫入權限。

如果這不是問題,我建議你在開啓log4net internal debugging

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
     <add key="log4net.Internal.Debug" value="true"/> 
    </appSettings> 
</configuration> 
+0

這是權限的問題。謝謝。 – DarthVader 2010-05-08 23:55:15

+0

安迪,請指明....你是什麼意思「可能是AppPool身份用戶沒有權限寫入日誌文件/目錄(假設你使用的是文件appender)」。我如何解決它 ? – Rodniko 2010-09-09 11:37:31

+0

Rodniko - 我更新了我的答案以顯示如何檢查這些權限。 – 2010-09-10 17:38:49