Log4j: один файл журнала за войну - PullRequest
3 голосов
/ 01 марта 2011

Можно ли установить отдельные файлы журнала для каждого файла войны? У нас есть две прикладные «войны», каждая из которых относится к определенной функции и управляется разными командами. Мы хотим вывести отдельный журнал войны в отдельный файл журнала. Обратите внимание, что обе эти войны используют некоторый общий код, и, следовательно, мы можем выделяться на уровне пакетов. Любые входы приветствуются.

Спасибо

Ответы [ 3 ]

3 голосов
/ 19 апреля 2011

Если вы развертываете свое приложение в JBoss, вы можете установить <filter> для <appender>, объявленного в jboss-log4j.xml. пример из JBoss Wiki :

<appender name="App1Log" class="org.apache.log4j.FileAppender">
  <errorHandler class="org.jboss.logging.util.OnlyOnceErrorHandler"></errorHandler>
  <param name="Append" value="false"/>
  <param name="File" value="${jboss.server.home.dir}/log/app1.log"/>
  <layout class="org.apache.log4j.PatternLayout">
    <param name="ConversionPattern" value="%d %-5p %c{1} %m%n"/>
  </layout>
  <filter class="org.jboss.logging.filter.TCLFilter">
     <param name="AcceptOnMatch" value="true"/>
     <!-- value="app1.war" is incorrect. -->
     <param name="DeployURL" value="app1-exp.war"/>
  </filter>    

1 голос
/ 21 апреля 2016

В log4j2 (log4j версии 2.x) есть полезный поиск под названием web: contextPath , который можно использовать для указания имени файла журнала, например:

<RollingFile name="RollingFile" fileName="${sys:catalina.base}/logs/${web:contextPath}.log"
    filePattern="${sys:catalina.base}/logs/$${date:yyyy-MM}/${web:contextPath}-%d{MM-dd-yyyy}-%i.log.gz">
    ...
</RollingFile>

Таким образом, каждый файл войны получает свой собственный файл журнала.

0 голосов
/ 01 марта 2011

Вот решение log4j , которое работает для JBoss. Он должен работать для других контейнеров, если в войнах используются загрузчики разных классов.

НТН

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...