В моем конфигурационном файле есть 3 приложения для создания журналов трех разных типов. Я использую динамическое именование файла в каждом из 3 приложений, устанавливая свойства глобального контекста. В некоторых случаях мне нужно динамически устанавливать имя файла журнала только для одного приложения.
Когда я устанавливаю имя файла только для одного приложения, он создает другой файл с именем «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». Это происходит только тогда, когда я задаю имя файла appenders во время выполнения.
Любая помощь приветствуется.