log4j2 能否每天生成 stdout/stderr 日志文件?

Can log4j2 able to generate stdout/stderr log file on daily basis?

如标题所述,我想每天生成 stdout.logstderr.log 文件通过使用 log4j2 日志记录配置。有什么方法可以在不重新启动我的 Tomcat 服务器的情况下生成它吗?或者它仍然像 log4j 版本 1 一样不能完成我上面提到的任务?

我的样本log4j.properties:

og4j.rootLogger = INFO,MANAGER,CONSOLE
log4j.appender.MANAGER=org.apache.log4j.DailyRollingFileAppender
log4j.appender.MANAGER.File=${catalina.base}/logs/manager.
log4j.appender.MANAGER.Append=true
log4j.appender.MANAGER.Encoding=UTF-8
log4j.appender.MANAGER.DatePattern='.'yyyy-MM-dd-HH-mm'.log'
log4j.appender.MANAGER.layout = org.apache.log4j.PatternLayout
log4j.appender.MANAGER.layout.ConversionPattern = %n %d [%t] %-5p %c- %m%n

log4j.appender.CONSOLE = org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.File = $(catalina.base)/logs/stdout.log
log4j.appender.CONSOLE.Encoding = UTF-8
log4j.appender.CONSOLE.layout = org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern =%n %d [%t] %-5p %c- %m%n

您指的是 stdout.log 和 stderr.log。 Stdout 和 Stderr 通常由 ConsoleAppender 处理,根本不会路由到文件。如果你想在文件中输出,你可以使用某种文件附加程序。日志事件从来没有被应用程序专门定向到 stdout 或 stderr,只有配置,所以我对你的问题有些困惑。

Log4j 1 有一个 RollingFileAppender,可以让你每天滚动文件,所以我不太确定你为什么说它不能执行任务。 Log4j 2还有一个RollingFileAppender,虽然有点不一样,也是可以每天滚动文件的。

您真的想知道如何 Tomcat 将其日志事件定向到 Log4j 2 吗?