Вы не можете войти в отдельные приложения - вам нужно настроить разные регистраторы и прикрепить соответствующий appender к каждому из них. Затем записывайте разные сообщения в разные регистраторы.
Хорошо .. :) Однако мне нужно будет писать отдельные сообщения в каждый файл журнала. как я могу написать сообщение конкретному приложению? Спасибо. ofer
ofer 03
2
@ ofer - см. мой ответ, как это сделать.
RichardOD 03
1
Что если вы хотите, чтобы File1Appender регистрировал ошибки DEBUG, а File2Appender регистрировал ошибки ERROR?
Эти ответы были полезны, но я хотел поделиться своим ответом как с частью app.config, так и с частью кода C #, чтобы у следующего человека было меньше догадок.
У меня такая же настройка в одном из моих приложений, и у меня она не работает :(
Román
1
Это обсуждение очень старое ... надеюсь, вы сможете ответить ... Я попробовал ваш подход, но два регистратора регистрируют одни и те же сообщения. Как и в log.Info ("") и otherLog.Info ("") сообщения записываются в оба файла журнала одновременно.
SutharMonil
1
@daniel_aren Да, я сделал то, что я использовал блок appender, чтобы создать два appender с отдельными путями к файлам (точно так же, как тот, что выше этого) .... так что эффективно у нас есть два блока appender с именами: fileappender1 и fileappender2 ... .
SutharMonil
1
@SutharMonil просто добавьте 'additivity = "false" в узел регистратора, как в ответе Гэри и выделено Джейсоном Эрнандесом. В этом случае он по-прежнему помещает все сообщения в корень, но только сообщения из otherLog.Info ("") будут появляться в File1Appender2
freedomn-m
Безусловно, самый точный ответ.
Фабрицио,
41
Я хотел регистрировать все сообщения в корневом регистраторе и иметь отдельный журнал с ошибками, вот как это можно сделать:
Вы можете добавить два или более элемента appender в корневой элемент log4net для входа в несколько файлов.
Дополнительная информация о приведенной выше структуре конфигурации XML или о том, какое приложение лучше всего подходит для вашего приложения, Подробнее читайте по ссылке ниже,
Ответы:
Да, просто добавьте несколько FileAppenders в свой регистратор. Например:
источник
Эти ответы были полезны, но я хотел поделиться своим ответом как с частью app.config, так и с частью кода C #, чтобы у следующего человека было меньше догадок.
Затем в коде:
Здесь c: /Console.txt будет содержать "Processing" ... и \ SummaryFile.log будет содержать "Processing2"
источник
<layout> ... </layout>
, без нее я не видел никаких сообщений в файле журнала.Винай прав. Отвечая на ваш комментарий в его ответе, вы можете сделать это следующим образом:
Так я делал это раньше. Тогда что-то вроде этого для другого журнала:
И вы можете получить свой обычный регистратор следующим образом:
Прочтите раздел документации о регистраторах и приложениях, чтобы понять, как это работает.
источник
Я хотел регистрировать все сообщения в корневом регистраторе и иметь отдельный журнал с ошибками, вот как это можно сделать:
Обратите внимание на использование фильтрующего элемента.
источник
Используйте приведенную ниже конфигурацию XML для настройки журналов в два или более файлов,
Вышеуказанная конфигурация XML записывается в два разных файла.
Чтобы программно получить конкретный экземпляр регистратора,
Вы можете добавить два или более элемента appender в корневой элемент log4net для входа в несколько файлов.
Дополнительная информация о приведенной выше структуре конфигурации XML или о том, какое приложение лучше всего подходит для вашего приложения, Подробнее читайте по ссылке ниже,
https://logging.apache.org/log4net/release/manual/configuration.html https://logging.apache.org/log4net/release/sdk/index.html
Надеюсь, это поможет.
источник