配置文件我是放在/WEB-INF/classes下面的啊。 结果还是报那个错。
PropertyConfigurator.configure("log4j.properties");  这样写,还需要做什么设置吗?

解决方案 »

  1.   

    我把代码贴出来吧。 帮我看看这么写有问题吗?都说配置文件我是放在/WEB-INF/classes就可以自动找到,怎么我这就找不到啊。bean的代码: import org.apache.log4j.*;
    import java.util.Properties;
    import java.io.InputStream;public class log4jbean {  static Logger logger = Logger.getLogger(log4jbean.class.getName());
      public log4jbean() {
      }  public static void LogSave()
      {
        PropertyConfigurator.configure("log4j.properties");
        logger.info("Entering application.");
      }
    }jsp的代码
    <%@ page contentType="text/html; charset=GBK"  import="log4jtest.*"%>
    <html>
    <head>
    <title>
    test
    </title>
    </head>
    <body bgcolor="#ffffff">
    <h1>
    log4jtesting...
    </h1>
    <%
    log4jbean.LogSave();
    %>
    </body>
    </html>
    配置文件log4j.rootLogger=debug, B1#打印到文件#log4j.appender.A1=org.apache.log4j.RollingFileAppender#log4j.appender.A1.File=example.log#log4j.appender.A1.MaxFileSize=100KB#log4j.appender.A1.MaxBackupIndex=1#log4j.appender.A1.layout=org.apache.log4j.PatternLayout#log4j.appender.A1.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n #打印到控制台log4j.appender.B1=org.apache.log4j.ConsoleAppenderlog4j.appender.B1.layout=org.apache.log4j.PatternLayoutlog4j.appender.B1.layout.ConversionPattern=%-4r %-5p [%t] %37c %3x - %m%nlog4j.appender.B1.layout.ConversionPattern=%m%n
     
      

  2.   

    Properties logger = new Properties();
    try{
        logger.load("log4j.properties");
    }catch(ClassNotFoundException e){
        e.printStackTrace();
    }找不到文件的话会有提示应在什么目录的。
      

  3.   

    这个问题,我已经解决了。
    答案是 必须加一"/" ! PropertyConfigurator.configure("/log4j.properties"); 这样就行了。 这么简单的问题,怎么就没有人帮我指出来呢?? 唉 结果我到处查资料弄了2个多小时。另外付另外一种写法: 
          //Properties log4jConf = new Properties(); 
          //log4jConf.load(ProLog.class.getResourceAsStream("/log4j.properties")); 
          //PropertyConfigurator.configure(log4jConf);
    这样也行。 给和我有同样问题的朋友一些参考。不管怎么样,感谢上面回我贴的朋友!
      

  4.   

    必须加一"/" !我加了也不行,出错说找不到["/log4j.properties],真不懂了,代码与楼上的很相近。//Properties log4jConf = new Properties(); 
          //log4jConf.load(ProLog.class.getResourceAsStream("/log4j.properties")); 
          //PropertyConfigurator.configure(log4jConf);ProLog.class.getResourceAsStream这句在编译时就出错呀,老兄你是如何成功的呀,谢谢你了。我也初玩Log4j,用的测试代码都与你一样。就是出错找不到这个文件,真是急死我了。
      

  5.   

    我测试结果如下,我真不懂为什么了,那个log4j.properties文件放在tomcat\bin目录下,同时生成的文件也在bin下面,这样就不再需要加那个“/”,但写出来的logs里面还有很多的其它debug内容,我想会不会我的那个站点加了Struts的原因呢?我要是把这个文件放在classes下确实不成,但如果用完整路径是没有问题。
      

  6.   

    以上多余了,只要把那个log4j.properties放在classes下,tomcat启动的时候它自动会加载log4j的配置信息,在程式代码不再需要使用PropertyConfigurator.configure("log4j.properties");来加载,如果用了它反而会出现上面的错误。但如果你把log4j.properties文件放在tomcat\bin下就不会有出错提示。还有一点,log4j.appender.A1.File=example.log,象这个example.log输出时是放在tomcat\bin下的。我的测试结果如上,现在是搞掂了这个log4j写入文件,但还要测试把它的信息放在mysql中,希望大家相互学习。
      

  7.   

    回楼上的//Properties log4jConf = new Properties(); 
          //log4jConf.load(ProLog.class.getResourceAsStream("/log4j.properties")); 
          //PropertyConfigurator.configure(log4jConf);其中ProLog是我写的类名,这个需要换成你自己的名字。 通过这样的方法,可以根据类所在路径找到绝对物理地址。另外,这是一个较完整的输出信息配置下面给出得Log4J配置文件实现了输出到控制台,文件,回滚文件,发送日志邮件,输出到数据库日志表,自定义标签等全套功能。log4j.rootLogger=DEBUG,CONSOLE,A1,im
    #DEBUG,CONSOLE,FILE,ROLLING_FILE,MAIL,DATABASElog4j.addivity.org.apache=true
    ###################
    # Console Appender
    ###################
    log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.Threshold=DEBUG
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    #log4j.appender.CONSOLE.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD] n%c[CATEGORY]%n%m[MESSAGE]%n%n
    #####################
    # File Appender
    #####################
    log4j.appender.FILE=org.apache.log4j.FileAppender
    log4j.appender.FILE.File=file.log
    log4j.appender.FILE.Append=false
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    # Use this layout for LogFactor 5 analysis########################
    # Rolling File
    ########################
    log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender
    log4j.appender.ROLLING_FILE.Threshold=ERROR
    log4j.appender.ROLLING_FILE.File=rolling.log
    log4j.appender.ROLLING_FILE.Append=true
    log4j.appender.ROLLING_FILE.MaxFileSize=10KB
    log4j.appender.ROLLING_FILE.MaxBackupIndex=1
    log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    ####################
    # Socket Appender
    ####################
    log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender
    log4j.appender.SOCKET.RemoteHost=localhost
    log4j.appender.SOCKET.Port=5001
    log4j.appender.SOCKET.LocationInfo=true
    # Set up for Log Facter 5
    log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
    log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n
    ########################
    # Log Factor 5 Appender
    ########################
    log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender
    log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000
    ########################
    # SMTP Appender
    #######################
    log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
    log4j.appender.MAIL.Threshold=FATAL
    log4j.appender.MAIL.BufferSize=10
    [email protected]
    log4j.appender.MAIL.SMTPHost=mail.hollycrm.com
    log4j.appender.MAIL.Subject=Log4J Message
    [email protected]
    log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
    log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    ########################
    # JDBC Appender
    #######################
    log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
    log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/test
    log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver
    log4j.appender.DATABASE.user=root
    log4j.appender.DATABASE.password=
    log4j.appender.DATABASE.sql=INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')
    log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
    log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
    log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A1.File=SampleMessages.log4j
    log4j.appender.A1.DatePattern=yyyyMMdd-HH'.log4j'
    log4j.appender.A1.layout=org.apache.log4j.xml.XMLLayout###################
    #自定义Appender
    ###################
    log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppenderlog4j.appender.im.host = mail.cybercorlin.net
    log4j.appender.im.username = username
    log4j.appender.im.password = password
    log4j.appender.im.recipient = [email protected]=org.apache.log4j.PatternLayout
    log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n