получить данные из консоли для создания записей журнала для log4net - PullRequest
0 голосов
/ 28 декабря 2011

У меня есть несколько внешних библиотек, которые я использую для входа в консоль. Я хочу, чтобы они входили через log4net.

ПРИМЕЧАНИЕ. Я НЕ хочу входить в консоль из log4net, это должно быть прямо.

То, что я обнаружил до сих пор:

1) Метод Console.setOut позволяет использовать другой файловый поток.
1.1) Переопределение потока памяти показалось многообещающим, но нет возможности поднять событие для уведомления об изменениях
2) Запись в файл из консоли выглядит как обходной путь, где я могу прочитать файл, чтобы обновить текстовое поле пользовательского интерфейса новыми журналами
3) FileStreams может автоматически очищаться, это означает автоматическое обновление информации. Такая концепция похожа на то, что я после?

Каков наилучший способ получения информации о консоли в log4net, чтобы она могла публиковать элементы журнала консоли так же, как настроена log4net? В настоящее время мой log4net помещает журналы в журнал событий, в текстовое поле wpf с данными и в файл.

1 Ответ

0 голосов
/ 28 декабря 2011

Лично я не знаю другого решения для этого случая, кроме того, что вы написали:

  • ovewrite output консоли, указывающей на файл

  • прочитайте файл и добавьте в логгер

Чтобы получить уведомление об изменении, вы можете попробовать использовать FileSystemWatcher http://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx.

Или, если вы не хотите получать уведомления в режиме реального времени, откройте файл only for read и проверьте по таймеру, есть ли строка после последнего сохраненного положения указателя считывателя.

Но я думаю,, первый вариант намного проще.

Надеюсь, это поможет.

...