我正在尝试重新配置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 App中的“auto”条目。
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
答案 0 :(得分:1)
CATALINA_HOME默认为Tomcat的安装目录。您可以根据需要进行设置,但没有必要,尤其是在运行简单的单个实例时。此外,您只需要下划线版本的环境变量。 'dot'版本通过Java而不是shell引用 - Tomcat知道在何处/如何获取此信息。
如果你确切地说出你放在哪个罐子里会有所帮助 - 你可能会错过一些小东西,但是如果不知道你做了什么,就不可能说出来。此外,您可能希望确保已正确设置环境变量。打开命令提示符并键入echo %CATALINA_HOME%
和echo %CATALINA_BASE%
以确定。将输出与dir
命令的输出与这些相同目录进行比较。他们匹配吗?提示:检查波形符(〜)缩写。
最后,你绝对肯定它没有使用log4j吗?我问,因为您链接到的站点上的log4j.properties文件应该与Tomcat的开箱即用日志记录相同。如果您刚刚复制了该文件而未进行任何更改,则log4j可能实际上正在运行。