在windows下倒是不会,文件不在了它会自动建一个。看看你的log4j是不是版本太低了,下载一个较新的试一下。

解决方案 »

  1.   

    to IceCraft(心淡情浓):运行的程序并未停止,windows下删都删不掉的,只有unix下可以删掉。测试代码如下import org.apache.log4j.Logger;public class TestLog extends Thread {    private static Logger log = Logger.getLogger(TestLog.class);    public void run() {
            int i = 0;
            while (i < 10) {
                i++;
                log.debug("test");
                try {
                    sleep(5000);
                } catch (Exception e) {
                }
            }
        }    public static void main(String[] args) {
            new TestLog().start();
        }
    } log4j.properties:log4j.rootLogger=DEBUG, logfile
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.File=test.log
    log4j.appender.logfile.MaxFileSize=100KB
    log4j.appender.logfile.MaxBackupIndex=100
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m (%F:%L) %n
      

  2.   

    关注,我这两天打算研究log4j
      

  3.   

    有可能是log4j没有考虑到吧……在windows下删不掉的。下载一个最新版看看
      

  4.   

    to IceCraft(心淡情浓):这是个后台程序,因为如果用户中途删掉了log文件
    (比如他想看一下刚生成的最新的log, 顺手把老的删掉,这也属人之常情啊),
    那就再也出不来log了,这显然是个问题。
      

  5.   

    不知大家试过没有,log4j在windows下面是删除不了的。
    但是有个问题,就是设置模式为:每天记录为一个新文件的时候;只要改了当前的日期,还是会记录不上的。我用他调试的时候有点反感的就是调试信息的堆积,而楼主的删除文件似乎也多少有些关联吧!不知道他是否有个功能,能够在程序中重新初始化他的日志信息。各位高手如果谁知道的话,贴出来,供大家参考。
      

  6.   

    没有用过log4j,不知道它是如何工作的,说个想法,如果说得不对,请大家包涵:
    在程序中使用log4j前,判断有无那个日志文件,如果没有自己创建一个再使用log4j。
      

  7.   

    把lg4j里的的代码加以修改,判断有无那个日志文件,或者出现找不到文件异常就自己创建一个
      

  8.   

    可能是版本的问题,你下载cvs的版本试试
      

  9.   

    写一个类,继承于log4j包中的Logger。剩下的事,就是自己添加代码云解决了。
      

  10.   

    看看你创建LOG文件的路径是否正确!
      

  11.   

    import org.apache.log4j.Logger;public class TestLog extends Thread {    private static Logger log = Logger.getLogger(TestLog.class);    public void run() {
            int i = 0;
            while (i < 10) {
                i++;
                log.debug("test");
                try {
                    sleep(5000);
                } catch (Exception e) {
                }
            }
        }    public static void main(String[] args) {
            new TestLog().start();
        }
    } log4j.properties:log4j.rootLogger=DEBUG, logfile
    log4j.appender.logfile=org.apache.log4j.RollingFileAppender
    log4j.appender.logfile.File=test.log
    log4j.appender.logfile.MaxFileSize=100KB
    log4j.appender.logfile.MaxBackupIndex=100
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} [%-5p] %m (%F:%L) %n网上可找
    帮忙顶!
      

  12.   

    在Windows下是删不掉的,但是在Unix下只要有权限是可以删掉的。
    我想可能并不是log4j有意这样的,用以提高写日志的效率。
    但是它忘记了unix下是可以强行删除文件的。