如标题所述,我想通过使用 log4j2 日志配置每天生成我的 stdout.log 和 stderr.log 文件。有没有办法在不重新启动 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 吗?
关于tomcat - log4j2 能否每天生成 stdout/stderr 日志文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36995708/