log4net - log4net - 指定要创建的文件。不要创建所有附加程序
问题描述
我的解决方案中有一个项目,它使用 Hangfire 运行多个不同的后台作业。我希望能够根据正在运行的后台作业指定要使用 Log4Net 创建的不同日志文件。
例如; 作业 1 对数据库进行验证检查,作业 2 将数据从 3rd 方应用程序同步到另一个数据库
我在配置文件中指定了几个附加程序,但是当我运行作业 1 或作业 2 时会创建所有日志文件。我希望只为每个作业创建一个日志文件,例如,当我运行作业 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>
解决方案
推荐阅读
- javascript - 在 Javascript 中运行 PHP
- javascript - 如何防止javascript触发点击事件队列
- javascript - 数据驱动方法的量角器故障和浏览器处理
- reactjs - Gatsby Netlify 构建错误:无法解析“/opt/build/repo/src/templates”中的“../components/GridTemplate/GridTemplate.js”
- c - C中常量的内存地址
- content-management-system - Hippo 自定义必备插件创建
- java - 当我尝试为 JFlex 和 Cup 创建新文件时出现 Java 错误
- node.js - 对数组中的对象进行分组 - MongoDB Aggregation
- php - 使用带有乌尔都语文本的 PHP 生成 PDF
- php - 如何在特定的 wordpress 页面上强制桌面视图