2014-08-13 3 views
0

Учитывая сборку с 2 классами Foo и Bar через файл конфигурации, как включить ведение журнала на уровне информации для Foo и уровень предупреждения для панели?Как настроить Log4Net для включения ведения журнала для конкретного класса

+0

Вы дали [документацию] (http://logging.apache.org/log4net/release/manual/configuration.html) взгляд? –

+0

@AdiLester Я сделал, но когда я искал «Включить», я не нашел его нигде. После нескольких поисков я нашел этот сайт: http://www.eyecatch.no/blog/2012/08/logging-with-log4net-in-c-sharp/ Похоже, вам просто нужно сделать '<имя журнала = "MyNamespace.MyClass"> ', но я больше не работаю над тестированием. Я должен буду завтра исследовать и сам ответить, если кто-то не подтвердит это первым. – Daryl

+0

@AdiLester Я также ничего не нашел на странице, которая конкретно определяет, как включить его/отключить для определенного класса. – Daryl

ответ

0

Какую конфигурацию вы используете, зависит от того, как создан Logger. Базовая конфигурация выглядит так:

<logger name="(INSERT LOGGER NAME HERE)"> 
    <level value="(WHATEVER LOG LEVEL TO APPLY FOR THIS PARTICULAR LOGGER)" /> 
</logger> 

Что определяет ваше имя регистратора, как вы его создаете.

LogManager.GetCurrentClassLogger() // The name will be "namespace.name" of the current class. 
LogManager.GetLogger<T>() // The name will be "namespace.name" of the Type T. 
LogManager.GetLogger(Type type) // The name will be "namespace.name" of the type. 
LogManager.GetLogger(string name) // The name will be name. 

Так что если у вас есть определенный процесс, который вы хотите войти в нескольких классов/файлов, определить имя процесса и использовать перегрузку string.

Если вы хотите включить ведение журнала для одного класса, используйте одну из других перегрузок.

Смежные вопросы