多个日志文件

时间:2014-11-03 14:16:01

标签: java logging

我想创建多个日志文件(每天),我的代码是:

public class LoggingInkrement {
    static final Logger logger = Logger.getLogger(LoggingInkrement.class.getName());

    public static void main(String[] args) {
        LogManager manager = LogManager.getLogManager();

        try {
            FileHandler fhandler = new FileHandler("C:/Users/Administrator/Desktop/Logging%g.txt", 1024*1024,10, true);
            SimpleFormatter sformatter = new SimpleFormatter();
            fhandler.setFormatter(sformatter);
            logger.addHandler(fhandler);

        } catch (IOException | SecurityException ex) {
            logger.log(Level.SEVERE, ex.getMessage(), ex);
        }

        try {
          ((Object) null).toString();
        }
        catch ( Exception e ) {
            logger.log( Level.SEVERE, "oh oh", e );
        }
        logger.info( "Hat funktioniert" );
    }
}

我的问题是: 首次运行: logging0.txt已创建 第二次运行:没有任何反应

这些更改未被注意(它保持在" Hat funktioniert"),无论我在logger.info

中做出哪些更改

但我希望的结果是:

  • 您可以创建具有设置大小的日志文件
  • 文件附加并且不会覆盖,直到他们完全限制
  • 文件在过时时自动删除

  • logging0.txt

  • logging1.txt
  • logging2.txt

等等

但我不知道我该怎么做

1 个答案:

答案 0 :(得分:0)

FileHandler不支持daily file rotation。但是,您始终可以通过创建一个丢弃的FileHandler并将限制设置为零并将set设置为false来触发旋转。

if (isNewDay()) { //then rotate and close.
    new FileHandler("C:/Users/Administrator/Desktop/Logging%g.txt",0,5, false).close();
}

//Open the log file.
FileHandler fhandler = new FileHandler("C:/Users/Administrator/Desktop/Logging%g.txt", 1024*1024,10, true);