2011-02-10 97 views
2

我正在使用log4net在我的應用程序中執行日誌記錄。我已將我的項目綁定到TFS。我已經創建了周圍的log4net包裝如下:使用RollingFileAppender時出現Log4Net問題

public static class TestLogger 
{ 
    private static readonly ILog log = LogManager.GetLogger("TestLogger"); 

    static TestLogger() 
    { 
     log4net.Config.XmlConfigurator.Configure(); 
    } 

    public static void LogInfo(string information) 
    { 
     log.Info(information); 
    } 

    public static void LogError(string erroMessage, Exception ex) 
    { 
     log.Error(erroMessage, ex); 
    } 

    public static void LogWarnings(string warningText) 
    { 
     log.Warn(warningText);    
    } 
} 

當我試圖執行從VS2010程序,我發現沒有被創建日誌文件。我創建了另一個項目(不綁定到TFS)並執行一些日誌記錄,它成功並創建了應用程序bin/debug中的文件。

以下是我的log4net配置文件。

<log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender, log4net"> 
    <file value="Log.txt" /> 
    <appendToFile value="false" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="3" /> 
    <maximumFileSize value="1GB" /> 
    <layout type="log4net.Layout.PatternLayout, log4net"> 
     <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> 
    </layout> 
    </appender> 
    <logger name="TestLogger"> 
    <level value="ALL" /> 
    <appender-ref ref="RollingFileAppender" /> 
    </logger> 
</log4net> 

有人可以幫助解決這個問題嗎?

回答

2

一些故障排除提示:

  1. 在你的配置文件中定義的日誌文件的絕對路徑。

  2. 檢查代碼(Environment.CurrentDirectory)中的當前工作目錄。如果您正在VS調試器下運行,並且您尚未在項目屬性的「調試」選項卡中指定工作目錄,則它可能會默認爲當前的Visual Studio工作目錄。

我不認爲被綁定到TFS是相關的。

+0

是的,我檢查了這條道路。它指向默認的bin \ debug目錄。但問題仍然存在。我試圖指定絕對路徑,但文件不是在該位置創建的。 – Omkar 2011-02-10 10:26:26

0

也許你的應用程序已經使用了一些declarative configuration,這是代碼中的某個地方。搜索是這樣的: [assembly: log4net.Config.XmlConfigurator(Watch=true)]

否則試圖讓log4net的資源庫保持與 log4net.LogManager.GetRepository()。它返回一個ILoggerRepository類型的對象。您可以嘗試使用此對象將有關當前log4net配置的一些信息寫入控制檯或其他位置。

0

嘗試打開內部調試,如here所述。這應該告訴你問題是什麼。如果內部調試沒有輸出,那麼你可能沒有配置log4net。

1

只要改變這部分

<appendToFile value="true" /> 
相關問題