У меня есть сценарий, который имеет несколько потоков, работающих параллельно. Эти потоки пишут в файл Log4Net RollingFileAppender. Чтение этого журнала является довольно запутывающим, так как все журналы потока перепутаны. Я задаюсь вопросом, что является хорошим способом записать эти журналы, и что является лучшим способом считать эти файлы, настолько читающие, что отладочная информация особого потока становится легче.
Обновите файл конфигурации, чтобы включить имя потока в вывод журнала. Если вы зададите имя потоков в коде, то это же имя будет записано в журнал в вашем файле. Вот простой пример включения имени потока через тег
<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/
Рассмотрите возможность ведения журнала во что-нибудь более простое в обращении, например в базу данных. Используя ведение журнала AdoNetAppender в таблицу базы данных, вы можете легко сортировать и фильтровать поток.
На сайте log4net есть образцы конфигурации о том, как это сделать.