2009-12-22 3 views
1

Возможно ли установить регистратор из конфигурации. У меня есть веб-приложение с использованием фреймворка. Рамка расширяема и имеет регистратор. Когда я вхожу в журнал, в настоящее время регистратор установлен в класс фреймворка.Конфигурация log4net logger

Возможно ли, что я могу настроить мой веб-приложение и установить регистратор для веб-приложение к loggerForWebApp и регистратор для консольного приложения (который с помощью же рамки) для loggerForConsoleApp?

+0

Это можно как я описываю в мой ответ. Но зачем вам делиться конфигурацией log4net между этими двумя приложениями? Не могли бы вы изолировать консольное приложение от своего веб-приложения и по-прежнему сможете использовать свою фреймворк или привязаны к webapp? –

+0

Нет, я бы не стал делиться им между 2 приложениями. Я бы хотел забрать его во время выполнения из двух разных приложений/web.configs, которые будут иметь разные значения. – ram

+0

Справа. Зачем вам нужен ведомый Webapp в консоли app.config или ведомости consoleapp в вашем web.config? Думаю, я не вижу весь фон для вашего вопроса ... –

ответ

3

В дополнении к корневому регистратор (который всегда должен быть там) вы можете назвали лесоруб с их собственными Appender-рефами и уровнями.

Например, вы могли бы иметь что-то вроде этого:

<root> 
.... 
</root> 

<logger name="loggerForWebApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

<logger name="loggerForConsoleApp"> 
    <level value="WARN" /> 
    <appender-ref ... /> 
</logger> 

В коде, вы бы вызвать эти регистраторы по их названию:

var log = LogManager.GetLogger("loggerForWebApp"); 
0

Определенно, и это одна из замечательных особенностей log4net: она может выходить в систему для широкого круга регистраторов.

Примеры добавок см. here. Вероятно, наиболее распространенным является RollingFileAppender, но ConsoleAppender может быть очень удобен для консольных приложений. В качестве альтернативы, TraceAppender может записывать стандартные прослушиватели трассировки .NET для дальнейшего перенаправления (или отображения в окне вывода отладки в Visual Studio).

Чтобы создать свой собственный, выполните IAppender.

детали следовать

+0

@Ram не спрашивает об appenders, он спрашивает о регистраторах. Две вещи в мире log4net. –