【问题标题】:Tomcat not picking up Log4j config for its internal loggingTomcat 没有为其内部日志记录选择 Log4j 配置
【发布时间】:2014-11-13 14:42:01
【问题描述】:

我正在尝试重新配置 Tomcat 7 以使用 log4j 进行内部日志记录。

我已遵循 Tomcat 7 文档中的所有步骤:http://tomcat.apache.org/tomcat-7.0-doc/logging.html 它仍然没有使用 Log4J,或者至少没有使用 log4j.properties 文件中指定的配置。

到目前为止我所尝试的:

  • 将必要的 jar 文件复制到 Tomcat 中提到的位置 文档

  • CATALINA_HOME, CATALINA_BASE 环境变量没有 展示。添加它们并将它们都设置为C:\Program Files\Apache Software Foundation\Tomcat 7.0

  • 注意到 log4J 属性文件引用了 catalina.base 而不是这样创建的 catalina_base , catalina.base 和catalina.home 环境变量并将两者都设置为C:\Program Files\Apache Software Foundation\Tomcat 7.0

  • 按照in another answer 的建议,我已删除 Monitor Tomcat 应用程序中的“自动”条目。

lib/log4j.properties

log4j.rootLogger = INFO, CATALINA

# Define all the appenders
log4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppender
log4j.appender.CATALINA.File = ${catalina.base}/logs/catalina
log4j.appender.CATALINA.Append = true
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 = org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppender
log4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhost
log4j.appender.LOCALHOST.Append = true
log4j.appender.LOCALHOST.Encoding = UTF-8
log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayout
log4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File = ${catalina.base}/logs/manager
log4j.appender.MANAGER.Append = true
log4j.appender.MANAGER.Encoding = UTF-8
log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppender
log4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-manager
log4j.appender.HOST-MANAGER.Append = true
log4j.appender.HOST-MANAGER.Encoding = UTF-8
log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'
log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.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

【问题讨论】:

    标签: java tomcat logging log4j


    【解决方案1】:

    CATALINA_HOME 默认为 Tomcat 的安装目录。您可以根据需要设置它,但这不是必需的,尤其是在您运行简单的单个实例时。此外,您只需要环境变量的下划线版本。 'dot' 版本是通过 Java 而不是 shell 引用的 - Tomcat 知道从哪里/如何获取这些信息。

    如果您确切地说出您将哪些罐子放在哪里会有所帮助 - 您可能遗漏了一些小东西,但如果不确切知道您做了什么,就不可能说出来。此外,您可能需要确保已正确设置环境变量。打开命令提示符并键入echo %CATALINA_HOME%echo %CATALINA_BASE% 以确保。将输出与dir 命令的输出与这些相同的目录进行比较。他们匹配吗?提示:检查波浪号 (~) 缩写。

    最后,你确定它没有使用 log4j 吗?我问是因为您链接到的站点上的 log4j.properties 文件的行为应该与 Tomcat 的开箱即用日志记录相同。如果您只是复制了该文件而没有更改任何内容,那么 log4j 可能确实可以正常工作。

    【讨论】:

    • 我已经用配置文件更新了问题详情。我希望看到的日志文件比我在日志目录中看到的要多。所以我认为它不起作用。
    • 我已将文件中提到的文件放在适当的目录中:“将 log4j.jar 和 tomcat-juli-adapters.jar 从“extras”放入 $CATALINA_HOME/lib。替换 $CATALINA_HOME/bin/ tomcat-juli.jar 和来自“extras”的 tomcat-juli.jar。”
    • 但是在最新版本的 Log4J 中没有 log4j.jar。它的发行版中有十几个罐子。我在阅读logging.apache.org/log4j/2.x/faq.html#which_jars 后放了 log4j-api-2.2.jar 和 log4j-core-2.2 jar
    • 好的,找到了。似乎 log4j 2.x 与 log4j 1.x 有很大不同。我摆脱了 2.x 罐子,放了一个 1.4 罐子。它现在正在工作。谢谢。
    猜你喜欢
    • 2011-07-11
    • 2018-11-16
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    • 2010-09-30
    • 1970-01-01
    相关资源
    最近更新 更多