Конфигурация Tomcat 6 Log4j - stdout все еще пишется? - PullRequest
0 голосов
/ 04 марта 2011

Я следовал инструкциям по настройке tomcat 6 для регистрации с использованием log4j отсюда: Вход в Tomcat

Однако я заметил, что потоки, по-видимому, регистрируются на стандартный вывод, безотносительно уровня журнала, установленного в log4j.properties.Вот мой файл log4j.properties:

    log4j.rootLogger=WARN, CATALINA
    # Define all the appenders
    log4j.appender.CATALINA=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.CATALINA.file=${catalina.base}/logs/tomcat.out
    log4j.appender.CATALINA.encoding=UTF-8
    # Roll-over the log once per day
    log4j.appender.CATALINA.DatePattern='.'yyyy-MM-dd'.log'
    log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n
    log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
    log4j.appender.CATALINA.append=true

    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.encoding=UTF-8
    log4j.appender.CONSOLE.conversionPattern = %d [%t] %-5p %c- %m%n

    # Configure which loggers log to which appenders
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=INFO, LOCALHOST
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]=INFO, MANAGER
    #log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]=INFO, HOST-MANAGER

    log4j.logger.org.hibernate.hql.ast=ERROR

Этот файл находится в моем каталоге $ {CATALINA_BASE} / lib.Обратите внимание на последнюю строку, где я установил для уровня org.hibernate.hql.ast значение ERROR.Следующее постоянно изливается в мой журнал tomcat.out:

15663118 [http-8080-1] WARN org.hibernate.hql.ast.QueryTranslatorImpl - firstResult/maxResults specified with collection fetch; applying in memory!
15663531 [TP-Processor7] WARN org.hibernate.hql.ast.QueryTranslatorImpl - firstResult/maxResults specified with collection fetch; applying in memor
62100 [http-8080-18] INFO org.hibernate.cache.StandardQueryCache - starting query cache at region: video

У меня есть аналогичный файл log4j.properties, развернутый в моем веб-приложении в WEB-INF / classes, которые имеют похожие свойства (но регистрируются в другомфайл).Почему операторы журнала не соответствуют шаблону преобразования, который я определил, и не следуют установленному пределу уровня журнала?

Я использую tomcat 6.0.30, Java 1.6.0_23 и log4j 1.2.16 вSunOS 5.10 amd64.Вывод в журнал моего приложения работает как положено.Заранее спасибо за помощь.

Андрей

1 Ответ

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

Основная проблема заключается в том, что вы используете старый способ настройки файла свойств в Log4J.Поскольку в наши дни большинство людей используют метод конфигурации XML, вам будет сложно найти любого, кто сможет ответить на этот вопрос.

Однако вам нужно установить пороговое значение для каждого из них.Вот как это делается в XML:

   <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
   ...
      <param name="Target" value="System.out"/>
      <param name="Threshold" value="WARN"/>

   ...
   </appender>

Это может выглядеть так, как в плоском файле:

log4j.appender.Console.Threshold=WARN
...