在启动时滚动日志文件

时间:2016-02-24 21:16:26

标签: java json configuration log4j rollingfileappender

我正在尝试使用RollingRandomAccessFile设置log4j。我把它设置为在超过20兆字节时翻转,并在它启动时滚动上次运行时遗留的内容。基于大小的策略工作正常,但我不能让它对启动策略做任何事情。我已经尝试过使用JSON和XML进行配置,并且无法使用它。甚至尝试通过调用

以编程方式触发它
((RollingRandomAccessFileAppender)LoggerContext.getContext(false).getConfiguration().getAppender("LOGFILE")).getManager().rollover();

什么都不做。我将状态记录器设置为输出所有内容,并且在启动期间没有弹出消息,表明它甚至试图将日志文件翻转过来。使用前面提到的编程方法时,它会输出一条消息,说明它将文件重命名为压缩前应该使用的相应名称,但是没有创建此类文件,也没有提及或创建压缩文件。这是JSON中appender的配置:

"RollingRandomAccessFile": {

    "name": "LOGFILE",
    "append": "false",
    "fileName": "ServerData/logs/latest.log",
    "filePattern": "ServerData/logs/$${date:dd-MM-YYYY_(EEE)_HH-mm-ss-SSS(z)}.log.gz",
    "PatternLayout": {

      "pattern": "$${date:dd-MM-YYYY (EEE)::HH:mm:ss.SSS(z)}: [%t] %-5level %logger{36}: %m%n"

    },
    "Policies": {

      "OnStartupTriggeringPolicy": {},
      "SizeBasedTriggeringPolicy": {"size": "20MB"}

    }


  }

0 个答案:

没有答案