Tomcat没有为其内部日志记录选择Log4j配置

时间:2014-09-19 04:45:34

标签: java tomcat logging log4j

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

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

到目前为止我尝试过:

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

  • CATALINA_HOMECATALINA_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 App中的“auto”条目。 enter image description here

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

1 个答案:

答案 0 :(得分:1)

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

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

最后,你绝对肯定它没有使用log4j吗?我问,因为您链接到的站点上的log4j.properties文件应该与Tomcat的开箱即用日志记录相同。如果您刚刚复制了该文件而未进行任何更改,则log4j可能实际上正在运行。