log4j:WARN No appenders could be found for logger (org.apache.catalina.startup.T
ldConfig).
log4j:WARN Please initialize the log4j system properly.我的log4j.properties内容是log4j.logger.ROLLING_FILE=DEBUG,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.file=org.apache.log4j.RollingFileAppenderlog4j.appender.file.File=D:/Tomcat 5.0/webapps/log/log.txt
log4j.appender.console.layout=org.apache.log4j.SimpleLayoutlog4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%t %p - %m%nlog4j.rootLogger=DEBUG########################
# Rolling File
########################
log4j.logger.ROLLING_FILE=DEBUG,ROLLINGfile
log4j.appender.ROLLINGfile=org.apache.log4j.RollingFileAppender
log4j.appender.ROLLINGfile.File=D:/Tomcat 5.0/webapps/log/errlog/err.log
log4j.appender.ROLLINGfile.Append=true
log4j.appender.ROLLINGfile.MaxFileSize=1024KB
log4j.appender.ROLLINGfile.MaxBackupIndex=10
log4j.appender.ROLLINGfile.layout=org.apache.log4j.PatternLayout
log4j.appender.ROLLINGfile.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
########################
#DailyRollingFileAppender
########################
log4j.logger.Daily_FILE=DEBUG,Dailyfile
log4j.appender.Dailyfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.Dailyfile.File=D:/Tomcat 5.0/webapps/log/datelog/yingyong
log4j.appender.Dailyfile.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.Dailyfile.layout=org.apache.log4j.PatternLayout
log4j.appender.Dailyfile.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%m%n
请问我应该怎么设置

解决方案 »

  1.   

    我的配置文件:#### Use two appenders, one to log to console, another to log to a file
    log4j.rootLogger=INFO,R,stdout
    # Print only messages of priority WARN or higher for your category
    log4j.category.your.category.name=WARN
    #### First appender writes to console
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    # Pattern to output the caller's file name and line number.
    log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
    #### Second appender writes to a file
    log4j.appender.R=org.apache.log4j.RollingFileAppender
    #### 注意必须是"/"
    log4j.appender.R.File=c:/mylog.log
    # Control the maximum log file size
    log4j.appender.R.MaxFileSize=100KB
    # Archive log files (one backup file here)
    log4j.appender.R.MaxBackupIndex=1
    log4j.appender.R.layout=org.apache.log4j.PatternLayout
    log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
      

  2.   

    在你的主程序开始执行时,或者web应用启动以后,必须在使用log4j之前加载配置文件,从显示的错误信息看,这个原因的可能性很大xml配置文件需要org.apache.log4j.DOMConfigurator.configure(String file)来读入property文件需要org.apache.log4j.xml.PropertyConfigurator.configure(String file)来读入
      

  3.   

    你的配置文件中没有为rootLogger指定任何的appender,只是定义了一个级别rootLogger的配置应该按照 hellwindy(夜神·月) 所示的例子写如果你不想使用rootLogger,应使用
    public static Logger Logger.getLogger(String name)获得一个named logger
    或者
    public static Logger Logger.getLogger(Class clazz)获得一个named logger
    在程序中获取指定的logger你也可以参考http://blog.csdn.net/chiefwolf/archive/2006/07/12/911863.aspx
      

  4.   

    用了以上的方法还是不行
    我的web.xml加了
    <servlet>
        <servlet-name>log4j</servlet-name>
        <servlet-class>mypack.Log4JServlet</servlet-class>
        <init-param>
    <param-name>propfile</param-name>
    <param-value>/WEB-INF/log4j.properties</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
    </servlet>
    mypack.Log4JServlet的代码是:
    package mypack;import javax.servlet.*;
    import javax.servlet.http.*;
    import java.io.*;
    import java.util.*;import org.apache.log4j.PropertyConfigurator;public class Log4JServlet extends HttpServlet {  public void init()
        throws ServletException {    // Get Fully Qualified Path to Properties File
        String path = getServletContext().getRealPath("/");
        String propfile = path + getInitParameter("propfile");    // Initialize Properties for All Servlets
        PropertyConfigurator.configure(propfile);
      }}
      

  5.   

    在使用Logger之前,加一句:Logger.getLogger("ROLLING_FILE")默认的logger是rootLogger,但是你没有给它加appender,你定义的logger是ROLLING_FILE,所以要指定这个logger