2014-04-24 207 views
0

我有一個C#應用程序。我想集成一個日誌文件。然後我嘗試這樣做是App.config中如何將文本寫入log4net文件

<log4net> 
    <appender name="FileAppender" type="log4net.Appender.FileAppender"> 
     <file value="logfile.txt" /> 
     <appendToFile value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" /> 
     </layout> 
    </appender> 
    <appender name="InfoFileAppender" type="log4net.Appender.FileAppender"> 
     <file value="info_logfile.txt" /> 
     <appendToFile value="true" /> 

    </appender> 
    <appender name="ErrorFileAppender" type="log4net.Appender.FileAppender"> 
     <file value="error_logfile.txt" /> 
     <appendToFile value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] – %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="FileAppender" /> 
     <level value="INFO" /> 
     <appender-ref ref="InfoFileAppender" /> 
     <level value="ERROR" /> 
     <appender-ref ref="ErrorFileAppender" /> 
    </root> 
    </log4net> 

所以我嘗試在infoFile寫:

log.Info("chiamata json"); 

,但我沒有看到任何info_logfile.txt文本

哪裏是我的錯誤?

我們可以幫我嗎?

Reguards

回答

0

你實例化你的日誌文件?嘗試以下操作以查看它可以與控制檯appender一起使用。 (本示例複製自David Saltner)

using log4net; 
using log4net.Config; 

public class LogTest 
{ 
    private static readonly ILog logger = 
      LogManager.GetLogger(typeof(LogTest)); 

    static void Main(string[] args) 
    { 
     BasicConfigurator.Configure(); 

     logger.Debug("Here is a debug log."); 
     logger.Info("... and an Info log."); 
     logger.Warn("... and a warning."); 
     logger.Error("... and an error."); 
     logger.Fatal("... and a fatal error."); 
    } 
} 

private static readonly ILog logger = 
      LogManager.GetLogger(typeof(LogTest)); 

這會爲LogTest類創建一個記錄器。您不必爲每個課程使用不同的記錄器,您可以在代碼中爲不同的部分或包使用不同的記錄器。記錄器的類輸出到日誌中,以便知道記錄的信息來自何處。

BasicConfigurator.Configure();

此方法初始化log4net的系統使用一個簡單的控制檯附加器。使用它可以讓我們快速查看log4net的工作方式,而無需設置不同的appender。

這應該讓你開始。看看這個great article for a brief introduction如何設置appender等等。

0

如果配置在你的app.config文件,你需要添加部分在配置文件中:

<configSections> 
<section name="log4net" 
    type="log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version=1.2.10.0, 
     Culture=neutral, PublicKeyToken=1b44e1d426115821" /> 
</configSections> 

這是更好的做法來配置log4.net是log4net.config文件。然後,您需要將以下行添加到讀取您的配置文件的程序集:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]