gpt4 book ai didi

dynamic - RollingFileAppender 中动态文件命名的 log4net 问题

转载 作者:行者123 更新时间:2023-12-01 11:07:29 25 4
gpt4 key购买 nike

我的配置文件中有 3 个附加程序,用于创建 3 种不同类型的日志。我通过设置全局上下文属性在 3 个附加程序中的每一个中使用文件的动态命名。在某些情况下,我需要为 1 个 appender 动态设置日志文件名。
当我只为 1 个 appender 设置文件名时,它会创建另一个名为“null”的文件,除了名称已动态设置的实际日志文件之外没有任何数据。我已经创建了如图所示的配置文件。

<appender name="RollingFileAppenderV1" type="log4net.Appender.RollingFileAppender">   
<file type="log4net.Util.PatternString" value="Logs\%property{applog}" />
.
.
.
<appender name="RollingFileAppenderV2" type="log4net.Appender.RollingFileAppender">
<file type="log4net.Util.PatternString" value="Logs\%property{dblog}" />
.
.
.
<logger name="Logger1">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderV1" />
</logger>
<logger name="Logger2">
<level value="DEBUG" />
<appender-ref ref="RollingFileAppenderV2" />
</logger>

在 VB.NET 代码中,我将文件名设置为:

log4net.GlobalContext.Properties("applog") = "file1.log"  
Dim logobj as log4net.Ilog = LogManager.GetLogger("Logger1")
logobj.debug("test")

在这种情况下,它会创建“file1.log”以及另一个名为“null”的空文件。仅当我在运行时设置任一附加程序文件名时才会发生这种情况。任何帮助表示赞赏。

最佳答案

据我所知,日志文件是在您配置 log4net 时创建的。这意味着您需要确保先设置该属性,然后再配置 log4net。

例如

log4net.GlobalContext.Properties["applog"] = "file1.log"
log4net.Config.XmlConfigurator.Configure();

关于dynamic - RollingFileAppender 中动态文件命名的 log4net 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3836737/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com