我的程序每天都会把一些运行信息写到日志文件去,但是这些信息没有保存的意义,所以我想每天都清空。
我本来是想着用一个FileAppender,然后每天在一个指定时间把那个日志文件删掉,让程序自己再创建一个,但是发现配置log4j之后,文件删不了。各位有什么好方法?谢谢。

解决方案 »

  1.   

    这个是每天的日志保存为一个文件。
    log4j.appender.dailyFileLog=org.apache.log4j.DailyRollingFileAppender
    你的要求似乎不需要这样,可能设置一个日志文件最大容量对你更加合适。
      

  2.   

    谢谢你的关注。
    我的程序并不是需要每天都产生一个日志文件,把昨天的日志备份起来,所以我想用DailyRollingFileAppender不太适合。设置一个最大容量也不必吧?我也不是想超过某个容量了就新建一个日志文件,把旧的日志备份起来。我的要求并不需要备份日志,而是每天都把日志写到同一个文件去,但是这个文件每天都会清空(例如,我的程序每天凌晨启动,启动时把日志文件清空,再把新的日志信息写到这个日志文件去,这样我白天上班就可以看到程序的运行情况)
      

  3.   

    你可以用
    log4j.appender.dailyFileLog=org.apache.log4j.DailyRollingFileAppender
    建立每天的日志。然后每天定时的时候,删除原有的日志,这样就可以删除。
    当天日志的文件名为system.log。
    而旧的日志文件名会在后面加上日期,例如:system.log.2006-04-21
    log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
    log4j.appender.A2.File=./logs/system.log
    log4j.appender.A2.DatePattern=.yyyy-MM-dd
    log4j.appender.A2.Append=true
    log4j.appender.A2.layout=org.apache.log4j.PatternLayout
      

  4.   

    试一下DailyFileAppender。
    这个没用过,似乎就是你要的效果。
      

  5.   

    谢谢你的回答。不过好像没有DailyFileAppender吧?不过你再上一个回帖那个方法是可以做到的,就是把备份的日志删掉。不过感觉比较麻烦,就是想知道LOG4J有没有直接提供这样的Appender(查了文档,好像是没有:))。谢谢。