tomcat8中的Log4j没有显示日志

时间:2015-10-25 08:27:10

标签: java log4j tomcat8

这是Log4j:

log4j.rootLogger=ERROR, CA, FA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.Target=System.out
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c:%L - %m%n
log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.File=${catalina.base}/logs/Z2.log
log4j.appender.FA.MaxFileSize=5MB
log4j.appender.FA.MaxBackupIndex=10
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
log4j.appender.FA.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm:ss}] [%-5p] [%c:%L]: %m%n
log4j.logger.com.datastax.driver.core=ERROR
log4j.logger.com.dcf=DEBUG

现在我正在使用tomcat8,因为我使用的是tomcat7,它工作得很好,并将日志文件保存在/var/log/tomcat7/logs/Z2.log

卸载tomcat7并安装tomcat8后,我找不到z1.log文件。

1 个答案:

答案 0 :(得分:3)

log4j.appender.FA.File=${catalina.base}/logs/Z2.log

我没有足够的声誉来评论但是'CATALINA_BASE'被设置为环境财产? 即从“CATALINA_HOME”推断或明确设置?

启用log4j的调试时会发生什么? 这可能会显示未创建日志文件等原因

我通常做的是保持容器日志记录,但在任何web / EE应用程序中使用log4j。通过这样做,容器日志记录将无需任何更改,任何Web / EE应用程序都是独立的,即在必要时更容易更改Web / EE容器。

对于Tomcat 8,本机日志库是'JULI',它实现了java.util.logging API的几个关键元素。

以下配置适用于

  • Tomcat 8.0.30

  • jdk1.8.0_66

  • log4j 2.5

[web-app-name] / WEB-INF / lib

commons-logging-l.2.jar 
log4j-api-2.5.jar       
log4j-core-2.5.jar      
log4j-jcl-2.5.jar       

[web-app-name] / WEB-INF / classes / log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
   <Properties>
      <Property name="LOG_FILE_PATH">${sys:catalina.home}/logs</Property>
      <Property name="PATTERN_JBOSS" >%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %m%n</Property>
      <Property name="PATTERN_TOMCAT">%d{dd-MMM-yyyy HH:mm:ss.SSS} %-5p [%t] %m%n</Property>
      <Property name="PATTERN"       >${PATTERN_JBOSS}</Property>
   </Properties>

   <Appenders>
      <Console name="console">
         <PatternLayout pattern="${PATTERN_TOMCAT}"/>
      </Console>

      <RollingFile name="daily-file" fileName   ="${LOG_FILE_PATH}/globaltrax.log"
                                     filePattern="${LOG_FILE_PATH}/globaltrax-%d{yyyy-MM-dd}.log">
         <PatternLayout pattern="${PATTERN_JBOSS}"/>
         <TimeBasedTriggeringPolicy/>
      </RollingFile>
   </Appenders>

   <Loggers>
      <Root level="WARN">
         <AppenderRef ref="console"/>
      </Root>

      <logger name="lpms.web.PurchaseOrderAction" level="TRACE">
         <AppenderRef ref="console"/>
      </logger>

      <logger name="lpms.web.PurchaseOrderAction" level="TRACE">
         <AppenderRef ref="daily-file"/>
      </logger>
   </Loggers>
</Configuration>

这定义了一个控制台记录器和一个典型的每日日志文件记录器。

请注意,'CATALINA_HOME'必须设置为'系统'环境变量 - 这在行中使用:

<Property name="LOG_FILE_PATH">${sys:catalina.home}/logs</Property>