配置文件内容如下:
log4j.propertieslog4j.rootLogger=debug,filelog4j.appender.file=org.apache.log4j.DailyRollingFileAppender
log4j.appender.file.File=stdout
log4j.appender.file.DatePattern='_'yyyy-MM-dd'.log'
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %l %m%nLog4jServlet.java //改变log文件存放的位置public class Log4jServlet extends HttpServlet{public void init(ServletConfig config)throws SewrvletException{
 String prefix=config.getServletContext().getRealPath("/");
 String file=config.getInitParameter("Log4jServlet");
 String filePath=prefix+file;
 Properties props = new Properties();
 try{
 FileInputStream istream=new FileInputStream(filePath);
 props.load(istream);
 String logFile=prefix+"logs\\"+props.getProperty("logej.appender.file.File");
 props.setProperty("logej.appender.file.File",logFile);
 PropertyConfigurator.configure(props);
 }catch(IOException e){
  e.printStackTrace();
 }
}
}web.xml
<servlet>
 <servlet-name>Log4jServlet</servlet-name>
 <servlet-class>com.servlet.Log4jServlet</servlet-class>
 <init-param>
  <param-name>Log4jServlet</param-name>
  <param-value>WEB-INF/class/log4j.properties</param-value>
 </init-param>
 <load-on-startup>1</load-on-startup>
</servlet>所有配置如上,运行时出现了一个这样的问题,当日期发生改变时,运行tomcat会提示
log4j:ERROR Failed to rename [e:\tomcat\webapps\abs\logs\stdout] to [e:\tomcat\webapps\abs\logs\stdout_2009-06-11.log].
请问要怎么解决这个问题呀?

解决方案 »

  1.   

    我是使用的tomcat6.0  log4j-1.2.15.jar
      

  2.   


    log4j.rootCategory=DEBUG, CONSOLE, FILE### A bootstrap file appenderlog4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
    log4j.appender.CONSOLE.Threshold=WARN
    log4j.appender.CONSOLE.Target=System.out
    log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
    log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} USERID %-5p [%c{1}] %m%nlog4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.file.File=stdout
    log4j.appender.FILE.Threshold=DEBUG
    log4j.appender.FILE.Append=true
    log4j.appender.FILE.DatePattern='_'yyyy-MM-dd'.log'
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} USERID %-5p [%c] %m%n
      

  3.   

    在相应的目录下面有没有 stdout文件?你看这样可不可以, 先在程序中关闭  log4j 的输出,再改文件名,再开启 log4j
    或者,你直接 copy原来的文件到新的目录下....
      

  4.   

    参考:
    log4j.appender.loginLog=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.loginLog.File=stdout.log 
    log4j.appender.loginLog.File.DatePattern='.'yyyy-MM-dd
    log4j.appender.loginLog.layout=org.apache.log4j.PatternLayout
    log4j.appender.loginLog.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss}|%m%n
      

  5.   

    to foolishdault:你这种方法也不行哦
      

  6.   

    to SBtoSB:你这个调试过的吗?我试也,也不能哦
      

  7.   


    请问怎么关闭 log4j 的输出呀?
    直接 copy原来的文件到新的目录下,那不是每天都得手动的去复制呀?
      

  8.   

    直接 copy原来的文件到新的目录下,那不是每天都得手动的去复制呀?通过程序去 copy 啊 ........
    通过编程实现log4j配置动态生效。很简单通过jsp实现的。http://wmj2003.javaeye.com/blog/379483看下这个对你有没有帮助,声明,我没有仔细看
      

  9.   

    是java 项目还是web项目.不同的项目最好是用不同的配置文件.4楼的配置是可以在java项目里面实现的.logger<对象>.debug("错误描述");
    logger.info(e.message);  //打印错误信息到日志文件里面