2012-08-27 157 views
1

我想在我的Java Web应用程序中使用log4j。我正在使用Tomcat 6. 问题是从未创建日志文件。log4j不能创建日志文件

的log4j.properties在classpath中,这意味着:

  • MY_PROJECT名
  • 的Java资源
    • SRC
    • 代码
    • log4j.properties

在源代码中我使用:

private static Logger log = Logger.getLogger(myclass.class); 

然后当我试图写一行:

log.error("here the error message", e); 

而且,这里我log4j.properties文件:

log4j.rootLogger=A1,file 

log4j.appender.A1=org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.maxFileSize=5000KB 
log4j.appender.file.maxBackupIndex=20 
log4j.appender.file.File=URLFILE/file.log 
log4j.appender.file.threshold=DEBUG 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n 

为什么当我运行这个时,日志文件永远不会被创建?

+0

检查文件权限(Tomcat需要写入)。另外,你在看'working directory/URLFILE/file.log'吗? – EthanB

+0

是的,权限是可以的,其余的也可以。 log4j的是在classpath此外,在: 项目名 \t的Java资源 \t \t的Src \t \t代码 \t \t log4j.properties –

+0

你的意思是'项目名/的Java /资源/ src目录/代码/ log4j.properties'? – EthanB

回答

0

你已经把在src一个log4J.property文件,这就是GUD ..只要把LIB也log4J.jar文件...

0

有没有在你的类路径log4j.jar?

也许您还必须设置根记录器级别。 log4j.rootLogger= DEBUG, A1,file

+0

是的,我的类路径中也有log4j.jar。我猜如果log4j.jar不在我的类路径中,我的源代码将会变成红色!我将添加rootlogger。 –

1

我不能帮你log4j.properties文件,但我可以给你一个工作log4j.xml文件,我使用:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="File" value="${catalina.home}/logs/Log.log"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
    <param name="Append" value="true"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p - %m%n"/> 
    </layout> 
    </appender> 

    <!--       --> 
    <!-- setup log4j's root logger --> 
    <!--       --> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="FILE"/> 
    </root> 

</log4j:configuration> 

我相信XML配置是无论如何配置log4j的首选方式。