【问题标题】:how to create dynamic log using log4net如何使用 log4net 创建动态日志
【发布时间】:2012-10-05 12:53:55
【问题描述】:

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

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

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

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

如何设置位置(路径)

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

有什么想法请教

【问题讨论】:

    标签: c# logging log4net


    【解决方案1】:

    log4net 通常用于拥有多个源和附加器。 要生成一个定义好的源,要求LogManager有一个命名的日志,一般我们使用一个类型来标识一个日志,但是如果你愿意,可以使用一个字符串:

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

    在第一种情况下,记录器由"NAME" 标识,在第二种情况下,由带有命名空间的类型名称标识。 然后,您可以为所有日志、它们的子集、过滤器等配置附加程序。 我们来看一个例子:

    <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();

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-12
    相关资源
    最近更新 更多