В проекте я использую log4net для записи в журнал событий.Мне нужно создать собственный журнал, так что все пойдет туда.Я попытался добавить событие в разные журналы, и это сработало, но по некоторым причинам теперь невозможно изменить имя журнала из файла конфигурации.Даже если я изменю его, он сохранит предыдущий и войдет в него.Вот пример моего app.config:
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{yyyy-MMMM-dd HH:mm:ss, fff} [%thread] %level %message %exception%newline"/>
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="FATAL" />
</filter>
<ApplicationName>TestLoggerFichierConfig</ApplicationName>
<LogName>AgentLogger</LogName>
</appender>
Я прочитал, что журнал событий должен быть перезапущен при добавлении нового журнала, чтобы последние события отображались в нем.Я сделал это, и это позволило мне увидеть новый журнал, который был создан, но ничего не пойдет туда.Можно ли заставить Log4Net прекратить использование предыдущего журнала, а не использовать тот, который я определил в app.config?
Спасибо за помощь.
Обновление:
Похоже, что le EventLogs распознает исходное приложение и решает в журнале поместить новые события, так как он помнит, куда они делись ранее.Когда я впервые устанавливаю logName, он работает нормально.Если я остановлю приложение, изменю имя журнала и перезапущу его, событие все равно перейдет к предыдущему журналу.Если logName не существует в журнале событий, он будет создан, но не использован!Может быть что-то и нужно сделать, но это не в стороне от log4net, и может быть опасно изменять настройки Windows на этом уровне.Я создал два eventLogAppender
в одном файле app.config, оба указывали на разные журналы.события попали в тот же журнал, хотя.Очевидно, что проблема не в log4net, и решение моей проблемы не будет решено кодом.Спасибо за отличные советы.