Java Logback TimeBasedRollingPolicy当前文件名无日期
我正在以编程方式使用TimeBasedRollingPolicy配置Logback RollingFileAppender。它看起来像这样:Java Logback TimeBasedRollingPolicy当前文件名无日期,java,logging,logback,Java,Logging,Logback,我正在以编程方式使用TimeBasedRollingPolicy配置Logback RollingFileAppender。它看起来像这样: RollingFileAppender<ILoggingEvent> rollingAppender = new RollingFileAppender<ILoggingEvent>(); TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBas
RollingFileAppender<ILoggingEvent> rollingAppender = new RollingFileAppender<ILoggingEvent>();
TimeBasedRollingPolicy<ILoggingEvent> policy = new TimeBasedRollingPolicy<ILoggingEvent>();
policy.setContext(rootLogger.getLoggerContext());
policy.setFileNamePattern(filePath + "/log.%d.txt");
policy.setMaxHistory(90);
policy.setParent(rollingAppender);
policy.start();
rollingAppender.setContext(context);
rollingAppender.setRollingPolicy(policy);
rollingAppender.setTriggeringPolicy(policy);
rollingAppender.setLayout(layout.getLayout());
rollingAppender.start();
rootLogger.addAppender(rollingAppender);
理想情况下,今天的日志应该在log.txt中,而以前滚动的日志应该在log.txt中。事实上,即使是今天的日志也在日志中。%d.txt。如何为当天的日志获取单独的日志文件名?使用rollingAppender.setFilefoo.txt;。活动文件名是appender的属性,而不是策略。我最初是这样做的,但添加了该配置行后,它没有遵守滚动策略。日志被放入log.txt,没有生成日志。%d.txt。请检查您的代码。当以XML配置的形式给出时,它可以完美地工作。我再次尝试了它,代码与我最初的问题中的代码完全相同,但我添加了rollingAppender.setfilepath+/log.txt。运行一次以生成log.txt文件,将系统时钟向前拨一天,然后再次运行。新日志刚刚添加到log.txt中。不,不,当然不。您不能通过运行一次、将系统时钟向前设置并再次运行来测试它。你需要让时钟在运行的时候滚动。是的,没问题。它不会在启动时启动,因为它不知道应该启动。它将假定log.txt是当天的日志,即使时钟已经旋转。