2014-04-24 30 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)]