Этот действительно заставляет меня чесать голову ....
Я уже некоторое время использую log4net (в настоящее время версия 1.2.10) в приложении. При добавлении новой опции в приложение я заметил, что, хотя методы log4net Debug, Error и т. Д. Вызывали вызываемые элементы из этого источника журнала, не были обнаружены консольным приложением.
Проверив очевидное (например, убедившись, что фильтрация не задействована), я заметил еще кое-что странное. Если у меня есть более одного приложения (например, приложение файла журнала и приложение UDP), то приложение иногда будет видеть разные подмножества сообщений журнала. Какое подмножество, которое они видят, кажется случайным, но обычно, когда возникает проблема, они не могут видеть все сообщения из данного источника журнала.
Почему это может происходить, и что я могу с этим поделать, так как потерянные сообщения означают, что файлу журнала нельзя доверять для точной картины удаленных сбоев?
[Дополнительная информация добавлена 19 января 2010 г.]
Наконец, я внимательно посмотрел на объект ILog, возвращаемый в ответ на вызов
LogManager.GetLogger(typeof (MyTypeHere));
В некоторых случаях я получаю объект ILog с Debug, Info, Warning, Error и т.д., установленными в false. В других случаях объект ILog правильно устанавливает их в значение true. Поскольку мой код ничего не делает для манипулирования этими флагами, в случаях, когда мой код передается, «отключенные» сообщения объекта ILog из моего кода (по понятным причинам) не распространяются вообще.
Я до сих пор не могу объяснить очевидное расхождение между двумя прибавителями.