log4net переопределить конфигурацию xml? - PullRequest
2 голосов
/ 17 января 2011

Я использую log4net, который настраивается через файл конфигурации. Есть один случай, когда я хотел бы, чтобы все было зарегистрировано в отладке (некоторый код, используемый во время обновления). Могу ли я в любом случае получить текущий уровень ведения журнала, настроить его на отладку, запустить указанный код, а затем вернуться к тому, что было раньше?

Ответы [ 3 ]

3 голосов
/ 17 января 2011

Вы можете добавить раздел в конфигурационном файле специально для DEBUG, используя

 <logger name="MyApp.DebugLogging" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="MainLog"/>
    </logger

Затем в своем коде вы можете получить доступ к этому логгеру, используя:

 private static readonly ILog debuglog = log4net.LogManager.GetLogger("MyApp.DebugLogging");

И использовать переменнуюв вашем кодовом блоке как

 debuglog .Debug(ex);

Идея заключается в том, что вы должны иметь возможность создавать различные регистраторы в своем конфигурационном файле, а затем иметь возможность выбора, какой регистратор использовать в ваших кодовых блоках

1 голос
/ 17 января 2011
1 голос
/ 17 января 2011

Вот идея:

Используйте только файл конфигурации log4net.Установите для флага «watch» значение true, чтобы просмотреть его.

Внутри этого файла конфигурации установите логирование filter (в каждом приложении).Установите минимальный уровень, скажем, Info или любой другой.См. Раздел «Фильтры» в http://logging.apache.org/log4net/release/manual/configuration.html

Затем, перед фазой обновления, отредактируйте файл конфигурации и измените минимальный уровень фильтра, скажем, на Debug.

.установите минимальный уровень фильтра в исходное значение.

...