如何将文本写入log4net文件

时间:2014-04-24 10:26:49

标签: c# log4net log4net-configuration

我有一个C#应用程序。我想整合一个日志文件。然后我尝试在App.config中执行此操作

<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

2 个答案:

答案 0 :(得分: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系统以使用简单的Console appender。使用它可以让我们快速了解log4net的工作原理,而无需设置不同的appender。

这应该让你开始。查看此great article for a brief introduction,了解如何设置appender等。

答案 1 :(得分: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)]