log4net-指定要创建的文件。不要创建所有追加程序

时间:2018-10-02 00:20:16

标签: log4net

我的解决方案中有一个项目,该项目使用Hangfire运行多个不同的后台作业。我希望能够基于正在运行的后台作业指定使用Log4Net创建的其他日志文件。

例如; 作业1对数据库进行验证检查,作业2将来自第三方应用程序的数据同步到另一个数据库中

我在配置文件中指定了多个追加程序,但是在运行作业1或作业2时会创建所有日志文件。我希望每个作业仅创建一个日志文件,例如当我运行Job 1时,日志文件job1.xml被创建,而不是job2.xml,反之亦然

有什么方法可以只指定附加程序吗?在下面的示例中,我只希望创建文件c:\ logging \ testing \ jobs3-%date {ddMMMyyyy-hhmmss} .xml

XmlConfigurator.Configure();
log4net.ILog log = log4net.LogManager.GetLogger("xmlFile2");

=====配置文件========                                                                   

    <appender name="file" type="log4net.Appender.RollingFileAppender">
      <file value="c:\logging\job1.log" />
      <appendToFile value="true" />
      <rollingStyle value="Once" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - [%M] %level %logger - %message%newline" />
      </layout>
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
    </appender>
    <appender name="xmlFile" type="log4net.Appender.FileAppender">
      <file type="log4net.Util.PatternString" value="c:\logging\testing\job2-%date{ddMMMyyyy-hhmmss}.xml" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
        <locationInfo value="true" />
      </layout>
      <param name="Encoding" value="utf-8" />
    </appender>
    <appender name="xmlFile2" type="log4net.Appender.FileAppender">
      <file type="log4net.Util.PatternString" value="c:\logging\testing\jobs3-%date{ddMMMyyyy-hhmmss}.xml" />
      <appendToFile value="true" />
      <layout type="log4net.Layout.XmlLayoutSchemaLog4j">
        <locationInfo value="true" />
      </layout>
      <param name="Encoding" value="utf-8" />
    </appender>
  </log4net>

0 个答案:

没有答案