log4net在appender中使用记录器名称
我正在尝试清理我们的一个应用程序目前用于其log4net实现的日志配置。使用包含XML文件文件路径的参数调用应用程序。该XML文件包含各种配置信息,其中一个是要使用的记录器名称 目前,每个配置文件都有自己的记录器,每个记录器都有自己的附加器。例如,我们将:log4net在appender中使用记录器名称,log4net,log4net-configuration,Log4net,Log4net Configuration,我正在尝试清理我们的一个应用程序目前用于其log4net实现的日志配置。使用包含XML文件文件路径的参数调用应用程序。该XML文件包含各种配置信息,其中一个是要使用的记录器名称 目前,每个配置文件都有自己的记录器,每个记录器都有自己的附加器。例如,我们将: 记录器作业1 记录器作业2 记录器作业3 及 附件控制台JOB1 附件控制台JOB2 附件控制台JOB3 appender rollingFileJob1 appender rollingFileJob2 appender rollin
- 记录器作业1
- 记录器作业2
- 记录器作业3
- 附件控制台JOB1
- 附件控制台JOB2
- 附件控制台JOB3
- appender rollingFileJob1
- appender rollingFileJob2
- appender rollingFileJob3
- 追加器smtpJob1
- appender smtpJob2
- 追加器smtpJob3
是否仍然可以访问appender中正在使用的记录器的属性?此外,我是否理解如何配置log4net,在多个记录器之间重复使用appender?直到几周前我才听说过log4net,所以我可能在这一点上完全错了。也在寻找同样的东西,不幸的是,似乎不可能开箱即用,检查文档中关于模式字符串中接受的变量
您可能必须创建自己的appender或格式化程序,才能访问更多变量(我怀疑两者都有)。我在其他地方找到了解决方案,在对另一个问题的回答中。不幸的是,我不记得是在哪里找到的,因为纽托邦的答案,我才回到原来的问题上来 可以通过以下行设置全局特性:
log4net.GlobalContext.Properties["id"] = "SomeText";
然后在附录中引用它,如下所示:
<appender name="NewAuto2ProcessingTestFILE" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Log/%property{id}NewAuto2ProcessingTest.txt" />
<appendToFile value="true" />
<maxSizeRollBackups value="10" />
<staticLogFileName value="true" />
<datePattern value=".yyyy-MM-dd.\\t\\x\\t" />
<rollingStyle value="Date" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p - %m%n" />
</layout>
</appender>
嘿,我上次确实找到了答案。我不记得在哪里,但我在自己的答案中复制了实现中的重要部分。在收到你的答复通知之前,我忘了我已经发布了这个。新链接这可能会在多线程应用程序中对您造成影响,但如果ID不经常更改,这可能会造成影响。同意,在我们的情况下,它可以正常工作,因为每个作业都会创建应用程序的新实例。它是一个基本应用程序,以XML文件作为输入,XML文件分步骤构造,每个步骤都包含有关特定操作的信息。所以,一项工作可能是从FTP服务器x获取文件,第2步解密,第3步将其解析为数据库,第4步运行存储过程,第5步从查询创建平面文件,第6步加密文件,第7步将新文件发送到另一个FTP站点。每个作业都有自己的应用程序实例,因此没有线程复杂性。