如何使用log4net创建动态日志

时间:2012-10-05 12:53:55

标签: c# logging log4net

我的项目位于C#(Windows窗体).net3.5

在我的代码中有多个事件,并且在每个事件中都有多个搜索正在运行。

我必须为每个事件创建日志文件,并且多个搜索可以访问&写下这个单一的日志文件。

问题是我不知道如何使用log4net创建具有动态(在运行时设置)名称的多个日志。

如何设置位置(路径)

我探索互联网有关我的问题,但没有找到任何解决此类问题的帮助。

任何想法请

1 个答案:

答案 0 :(得分:0)

log4net通常用于拥有多个源和appender。 要生成定义的源,请要求LogManager具有命名日志,通常我们使用类型来标识日志,但如果需要,可以随意使用字符串:

    var myLog = LogManager.GetLogger("NAME");
....
    var myLog = LogManager.GetLogger(GetType());

在第一种情况下,记录器由"NAME"标识,在第二种情况下由名称空间标识符标识。 然后,您可以为所有日志配置appender,为其子集配置过滤器等。 我们来看一个例子:

<configuration>

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>

  </configSections>
  <log4net>

<appender name="MYFILE" type="log4net.Appender.RollingFileAppender">
  <file value=".\logs\myname.log"/>
  <appendToFile value="true"/>
  <rollingStyle value="Size"/>
  <maxSizeRollBackups value="10"/>
  <maximumFileSize value="10MB"/>
  <staticLogFileName value="true"/>
  <layout type="log4net.Layout.PatternLayout">
    <conversionPattern value="%date %-5level (%thread) %logger - %message%newline"/>
  </layout>
</appender>

<root>
  <level value="INFO"/>
  <!-- all logger append to these appenders />
   <appender-ref ref="xxxxxx"/>

</root>
<logger name="NAME">
  <level value="INFO"/>

  <appender-ref ref="MYFILE"/>
</logger>
<!-- add other appender here -->

不要忘记在您的申请开始XmlConfigurator.Configure();

时致电