Java Tomcat没有为其内部日志记录获取Log4j配置
我正在尝试重新配置Tomcat7,以使用log4j进行内部日志记录 我遵循了Tomcat 7文档中的所有步骤: 它仍然没有使用Log4J,或者至少没有使用Log4J.properties文件中指定的配置 到目前为止,我所尝试的:Java Tomcat没有为其内部日志记录获取Log4j配置,java,tomcat,logging,log4j,Java,Tomcat,Logging,Log4j,我正在尝试重新配置Tomcat7,以使用log4j进行内部日志记录 我遵循了Tomcat 7文档中的所有步骤: 它仍然没有使用Log4J,或者至少没有使用Log4J.properties文件中指定的配置 到目前为止,我所尝试的: 将必要的jar文件复制到Tomcat中提到的位置 文件 CATALINA_HOME,CATALINA_BASE环境变量不可用 目前添加了它们并将它们都设置为C:\Program Files\Apache Software 基金会\Tomcat 7.0 注意到log4J
- 将必要的jar文件复制到Tomcat中提到的位置 文件
,CATALINA_HOME
环境变量不可用 目前添加了它们并将它们都设置为CATALINA_BASE
C:\Program Files\Apache Software 基金会\Tomcat 7.0
- 注意到log4J属性文件引用了
不是这样创建的catalina\u base,而是catalina.base 和catalina.base
环境变量,并将两者设置为catalina.home
C:\Program Files\Apache Software Foundation\Tomcat 7.0
- 根据建议,我已删除Monitor Tomcat应用程序中的“自动”条目。
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
CATALINA_HOME默认为Tomcat的安装目录。如果愿意,可以设置它,但这不是必需的,尤其是在运行简单的单个实例时。此外,您只需要环境变量的下划线版本。“dot”版本是通过Java而不是shell引用的,Tomcat知道从哪里/如何获取这些信息 如果你能准确地说出你把哪些罐子放在了哪里,这会有所帮助——也许你遗漏了一些小东西,但如果你不知道自己到底做了什么,就不可能说出来。此外,您可能需要确保正确设置了环境变量。打开命令提示符并键入
echo%CATALINA\u HOME%
和echo%CATALINA\u BASE%
。将输出与dir
命令的输出与这些相同的目录进行比较。他们匹配吗?提示:检查波浪号(~)缩写
最后,您是否绝对确定它没有使用log4j?我这样问是因为您链接到的站点上的log4j.properties文件的行为应该与Tomcat的开箱即用日志相同。如果您只是复制了该文件,而没有更改任何内容,那么log4j实际上可能会工作。我已经用配置文件更新了问题的详细信息。我希望看到的日志文件比在logs目录中看到的要多。因此,我假设它不起作用。我已经将文件放在文档中提到的适当目录中:“将log4j.jar和tomcat-juli-adapters.jar从“extras”放入$CATALINA_HOME/lib。将$CATALINA_HOME/bin/tomcat-juli.jar替换为“extras”中的tomcat-juli.jar。”但是在最新版本的log4j中没有log4j.jar。它的发行版里有十几个罐子。我已经把log4j-api-2.2.jar和log4j-core-2.2jar放好了,看了Ok,找到了。看起来log4j2.x与log4j1.x有很大的不同。我扔掉了2.x罐子,放了一个1.4罐子。它正在工作。谢谢