将tomcat内部默认日志方式改为Log4j未成功的记录

来源:互联网 发布:java调用本地程序 编辑:程序博客网 时间:2024/05/17 01:21

官方下载地址:https://tomcat.apache.org/download-70.cgi

下载的是zip版本:apache-tomcat-7.0.69.zip

按官方文档来操作:
https://tomcat.apache.org/tomcat-7.0-doc/logging.html

  1. 新建文件叫log4j.properties,内容见文未(复制的官网上的)放入$CATALINA_BASE/lib下。
  2. 下载log4j,需要v1.2.x,下载地址:https://logging.apache.org/log4j/1.2/download.html,下载的zip版本log4j-1.2.17.zip。解压出 log4j-1.2.17.jar。
  3. 下载tomcat-juli.jartomcat-juli-adapters.jar。详见附加组件文档,下载地址与上面下载tomcat的地址一样。不过是Extrax标记下。
  4. log4j.jartomcat-juli-adapters.jar放入$CATALINA_HOME/lib.
  5. tomcat-juli.jar替换$CATALINA_HOME/bin/tomcat-juli.jar.
  6. 删除$CATALINA_BASE/conf/logging.properties免得java.util.logging生成0长度的日志文件。
  7. 启动Tomcat.

    但按上面操作之后,却不能正常的打印日志。显示:

    log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.Catalina).
    log4j:WARN Please initialize the log4j system properly.
    log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

logs文件夹下,多了五个日志文件。两个有内容:catalina.out,localhost。catalina.out中就是上面的话。
localhost中就是contextInitialized等记录。

当我把上面的log4j.properties改名了,再启动tomcat时,logs里面就只有一个文件了。内容空。

说明log4j.properties还是起作用的。

但输不出日志。

附:
涉及文件列表:

  • apache-tomcat-7.0.69.zip,MD5: 296A27D0CC455D41AB5746A6BA34DACA
  • log4j-1.2.17.zip,MD5: 5BCF80352B7D622DF0DBCB44E50CF0BB
  • log4j-1.2.17.jar, MD5: FB87BD84E336CA3DC6B6C108F51BF25E
  • tomcat-juli.jar, MD5: 9F57B2D40F301891BA6C2EC3DDCE5C85
  • tomcat-juli-adapters.jar, MD5: FD1B9A734EC046565122595A92B6A054

log4j.properties的内容

og4j.rootLogger = INFO, CATALINA# Define all the appenderslog4j.appender.CATALINA = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.CATALINA.File = ${catalina.base}/logs/catalinalog4j.appender.CATALINA.Append = truelog4j.appender.CATALINA.Encoding = UTF-8# Roll-over the log once per daylog4j.appender.CATALINA.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.CATALINA.layout = org.apache.log4j.PatternLayoutlog4j.appender.CATALINA.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.LOCALHOST = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.LOCALHOST.File = ${catalina.base}/logs/localhostlog4j.appender.LOCALHOST.Append = truelog4j.appender.LOCALHOST.Encoding = UTF-8log4j.appender.LOCALHOST.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.LOCALHOST.layout = org.apache.log4j.PatternLayoutlog4j.appender.LOCALHOST.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.MANAGER = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.MANAGER.File = ${catalina.base}/logs/managerlog4j.appender.MANAGER.Append = truelog4j.appender.MANAGER.Encoding = UTF-8log4j.appender.MANAGER.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.HOST-MANAGER = org.apache.log4j.DailyRollingFileAppenderlog4j.appender.HOST-MANAGER.File = ${catalina.base}/logs/host-managerlog4j.appender.HOST-MANAGER.Append = truelog4j.appender.HOST-MANAGER.Encoding = UTF-8log4j.appender.HOST-MANAGER.DatePattern = '.'yyyy-MM-dd'.log'log4j.appender.HOST-MANAGER.layout = org.apache.log4j.PatternLayoutlog4j.appender.HOST-MANAGER.layout.ConversionPattern = %d [%t] %-5p %c- %m%nlog4j.appender.CONSOLE = org.apache.log4j.ConsoleAppenderlog4j.appender.CONSOLE.Encoding = UTF-8log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayoutlog4j.appender.CONSOLE.layout.ConversionPattern = %d [%t] %-5p %c- %m%n# Configure which loggers log to which appenderslog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost] = INFO, LOCALHOSTlog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager] =\  INFO, MANAGERlog4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager] =\  INFO, HOST-MANAGER

用于重现的复制文件脚本:

import shutilimport osimport syscatalina_base = "C:/apache-tomcat-7.0.69/"# move log4j.properties to $CATALINA_BASE/libshutil.copyfile("log4j.properties",catalina_base+"lib/log4j.properties")# move log4j.jar and tomcat-juli-adapters.jar to $CATALINA_HOME/libshutil.copyfile("log4j-1.2.17.jar",catalina_base+"lib/log4j.jar")shutil.copyfile("tomcat-juli-adapters.jar",catalina_base+"lib/tomcat-juli-adapters.jar")# replace $CATALINA_HOME/bin/tomcat-juli.jar with tomcat-juli.jarshutil.copyfile("tomcat-juli.jar",catalina_base+"bin/tomcat-juli.jar")# $CATALINA_BASE/conf/logging.propertiesloggingpath =catalina_base+"conf/logging.properties"if os.path.isfile(loggingpath):    os.remove(loggingpath)print "OK"
0 0