Ведение журнала приложений Tomcat 6 и log4j не приводит к выводу - PullRequest
1 голос
/ 27 мая 2009

Я пытаюсь заставить журналирование приложения log4j (webapp) работать в приложении Tomcat 6. У меня log4j-1.2.15.jar в моем каталоге WEB-INF, log4j.dtd и log4j.xml в WEB-INF / classes.

Мой log4j.xml выглядит так:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
<appender name="massAppender" class="org.apache.log4j.RollingFileAppender">
    <param name="maxFileSize" value="100KB" />
    <param name="maxBackupIndex" value="2" />
    <param name="File" value="${catalina.home}/logs/mass.log" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d{ABSOLUTE} %5p %c{1}: %m%n " />
    </layout>
</appender>

<category name="com.company.mass">
    <priority value="DEBUG"/>
    <appender-ref ref="massAppender"/>
</category>

<root>
     <appender-ref ref="massAppender" />
</root>

</log4j:configuration>

Мой сервлет находится в упаковке:

package com.company.mass;

где регистратор объявлен как:

private static Logger logger = Logger.getLogger(Handler.class);

и в верхней части моего метода doGet (...) есть:

logger.error("foo");

Когда я развертываю приложение в Tomcat и перехожу к сервлету, оно работает правильно. Я даже получаю файл mass.log, но в него ничего не вставляется. Это не отображается ни в каких других журналах, и нет никаких очевидных ошибок. Есть идеи, что происходит?

Ответы [ 4 ]

3 голосов
/ 27 мая 2009

Вы уверены, что log4j на самом деле использует log4j.xml для своей конфигурации, а не другой файл в classpath?

Включить системное свойство -Dlog4j.debug, чтобы log4j распечатывал информацию о том, какой именно файл конфигурации он использует.

0 голосов
/ 13 апреля 2012

Когда я столкнулся с этой проблемой, я смог ее решить, добавив common-logging.jar в мою сборку развертывания.

0 голосов
/ 28 мая 2009

Попробуйте добавить строку:

<param name="Threshold" value="ALL" />

к вашей конфигурации massAppender

и эта строка

<priority value ="debug"/>

внутри вашего корневого определения

0 голосов
/ 27 мая 2009

Не уверен, нужен ли вам приоритет в вашем корневом логгере. Попробуйте этот конфиг

<category name="com.company.mass">
    <priority value="DEBUG"/> 
    <!-- no need to specify appender again here -->
</category>

<root>
    <priority value="INFO"/> 
     <appender-ref ref="massAppender" />
</root>
...