正如标题所述,我希望通过使用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
答案 0 :(得分:0)
您指的是stdout.log和stderr.log。 Stdout和Stderr通常由ConsoleAppender处理,根本不会路由到文件。如果您希望将输出放在文件中,则可以使用某种文件追加器。日志事件永远不会被应用程序专门指向stdout或stderr,只是配置,所以我对你的问题感到有些困惑。
Log4j 1有一个RollingFileAppender,可以让你每天滚动文件,所以我不确定你为什么说它无法执行任务。 Log4j 2也有一个RollingFileAppender,虽然它有点不同,它也可以每天滚动文件。
您真的想知道如何让Tomcat将其日志事件定向到Log4j 2吗?