Чтение журнала из Log4Net, созданного несколькими потоками - PullRequest
8 голосов
/ 02 марта 2010

У меня есть скрипт, в котором несколько потоков работают параллельно. Эти потоки записывают в файл Log4Net RollingFileAppender. Чтение этого журнала довольно запутанно, поскольку все журналы потоков перепутаны. Мне интересно, что является хорошим способом для записи этих журналов, и как лучше всего читать эти файлы, чтобы чтение отладочной информации определенного потока стало проще.

Ответы [ 2 ]

7 голосов
/ 02 марта 2010

Обновите ваш файл конфигурации, чтобы включить имя потока в вывод журнала. Если вы зададите имя потока в коде, то же имя будет записано в ваш файл. Это простой пример включения имени потока через файл конфигурации log4net tag:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="service.log" />
    <appendToFile value="true" />
    <rollingStyle value="Size" />
    <maxSizeRollBackups value="10" />
    <maximumFileSize value="2MB" />
    <staticLogFileName value="true" />
    <layout type="log4net.Layout.PatternLayout">
        **<conversionPattern value="%-5level : [%t] - %message%newline" />**
    </layout>
</appender>

UPDATE Я написал простое приложение POC, чтобы продемонстрировать это. http://codereport.net/logging-the-thread-name-with-log4net/

0 голосов
/ 03 марта 2010

Подумайте о регистрации чего-то более простого в обращении, например, базы данных. Используя регистрацию AdoNetAppender в таблице базы данных, вы можете легко отсортировать и отфильтровать поток.

На сайте log4net есть примеров конфигурации о том, как это сделать.

...