Я все время использую log4net, но одна вещь, которую я никогда не понимал, это как узнать, что происходит внутри. Например, в моем проекте есть консольный приложение и приложение базы данных. Я сделал несколько изменений в базе данных и коде, и теперь приложение базы данных больше не работает. В конце концов я пойму, почему, но мне бы очень помогло, если бы я мог видеть, что происходит внутри log4net.
Создает ли log4net какой-либо вывод, который я могу просмотреть, чтобы определить источник моей проблемы?
C:\tmp\log4net.txt
наC:\log4net.txt
, то он может генерировать текстовый файл.<configSections></configSections>
первая запись под<configuration>
. В противном случае вы получите ошибку.traceOutputOptions="TimeStamp"
иtraceOutputOptions="DateTime"
вadd
теге, но это ничего не меняет в содержимом файла журнала. Кто-нибудь знает, как настроить log4net, чтобы показать время для каждой строки / записи в файле журнала трассировки?Если вы используете конфигурационный файл log4net, вы также можете включить там отладку, изменив верхний узел на:
Это будет работать после перезагрузки конфигурации и при условии, что ваш слушатель трассировки настроен правильно.
источник
В дополнение к приведенному выше ответу вы можете использовать эту строку для просмотра журнала в реальном времени вместо вывода c: \ tmp \ log4net.txt.
Например, в консольном приложении вы можете добавить это, а затем посмотреть результат в реальном времени. Это хорошо для отладки log4net в небольшом тестовом жгуте, чтобы увидеть, что происходит с тестируемым аппендером.
источник
Убедитесь, что корневое приложение, в котором находится ваша точка входа, записывает что-то в log4net. Дайте ему один из них:
С 2.0.8 у меня сложилась интересная ситуация. Я создал проект библиотеки и тестовый exe-проект, который продемонстрировал бы его возможности. Проект библиотеки был настроен на использование Log4net, как и проект exe. В проекте exe для регистрации конфигурации использовался атрибут assemblyinfo, но я не получал вывод журнала ни на консоль, ни на файл журнала. Когда я включил ведение журнала внутренней отладки log4net, я получил несколько внутренних сообщений, записанных на консоль, но все равно ни один из моих обычных журналов. Об ошибках не сообщалось. Все начало работать, когда я добавил вышеуказанный код в свою программу. В противном случае Log4net был настроен правильно.
источник
Если внутренний журнал не дает достаточно информации, очень легко создать и отладить исходный код . Если вы не хотите смешивать это с вашим проектом разработки, добавьте простое консольное приложение, которое просто регистрирует сообщение, копирует ваш проект
log4net.config
в это приложение и отлаживает рассматриваемый класс.источник
В log4net 2.0.8 представляется невозможным вести запись с log4net в отдельную DLL. Если я попробовал это, результаты были бы очень странными: регистрация не выполнялась. И инициализация log4net с параметром отладки не показывает ошибок.
Как сказал K0D4, у вас должна быть ссылка на log4net в вашем главном модуле, и он должен вызываться один раз при запуске программы, и все в порядке.
В следующей версии log4net эта ошибка, вероятно, будет исправлена.
источник