我在配置文件中有3个appender,用于创建3种不同类型的日志。我在每个appender中使用动态命名文件,通过设置全局上下文属性。在某些情况下,我仅需要为一个appender动态设置日志文件名。
当我仅为一个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”的空文件。只有在我在运行时设置任一附加器的文件名时才会发生这种情况。 感谢任何帮助。