Шаблон файла FileAppender для входа в систему Java - PullRequest
0 голосов
/ 04 октября 2010

У меня есть такой аппендер.

<appender name="Action.FileAppender" class="ch.qos.logback.core.FileAppender">
<file>logs\\${date}\\${thread}.log</file>
<encoder>
<pattern>%level - %msg%n</pattern>
</encoder>
</appender>

И я хочу, чтобы $ {date} и $ {thread} были текущей датой и текущим именем потока. Как я могу это сделать?

Ответы [ 2 ]

2 голосов
/ 04 октября 2010

SiftingAppender может быть то, что вам нужно. Он предназначен для разделения событий регистрации в соответствии с «дискриминаторами», которые будут датой и именем потока в вашем случае.

0 голосов
/ 04 октября 2010

Вы имеете в виду, что хотите динамически устанавливать имя выходного файла во время выполнения? AFAIK это не возможно прямо через конфигурацию. У вас есть два обходных пути:

Первый способ был бы довольно утомительным и расточительным, поскольку для классов, в которых разные экземпляры могут вызываться из разных потоков, могут потребоваться определенные для экземпляра регистраторы и приложения. И даже тогда, что если один и тот же объект используется несколькими потоками?

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

...