【问题标题】:Can log4j2 able to generate stdout/stderr log file on daily basis?log4j2 可以每天生成 std​​out/stderr 日志文件吗?
【发布时间】:2016-05-03 04:38:33
【问题描述】:

正如标题所述,我想通过使用 log4j2 日志配置每天生成我的 stdout.logstderr.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

【问题讨论】:

    标签: tomcat logging log4j log4j2


    【解决方案1】:

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

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

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

    【讨论】:

    • 抱歉问题不清楚。我知道 RollingFileAppender 可以每天滚动我的文件。但我想要的正是由 ConsoleAppender 处理并且能够每天滚动的日志。有可能做到吗?或者是否有其他日志记录可以完成这样的任务?请帮忙。
    • 你问的没有任何意义。只需将控制台追加程序替换为滚动文件追加程序,或者在控制台追加程序之外添加滚动文件追加程序。
    • 感谢您的友好回复。除了控制台附加程序之外,您能否举例说明如何添加滚动文件附加程序?提前致谢。
    • 我通过显示我的 log4jj.properties 来编辑我的问题。正如你所看到的,我的 log4j.appender.Manager 可以通过将 DatePattern 设置为“.”yyyy-MM-dd-HH-mm 格式每分钟轮换一次,因为我使用了 DailyRollingFileAppender。我的目标是旋转第二部分,即我的 CONSOLE,我想像 MANAGER 一样旋转它,但使用 ConsoleAppender。我可以知道如何将两个 appender 添加在一起以使事情正常工作吗?谢谢。
    • 将控制台滚动到哪里?控制台写入标准输出,这通常是您的终端屏幕。对于像 Tomcat 这样的应用程序,它获取 stdout 的所有权并将其路由到文件,但日志系统不知道这是怎么回事。如果您希望您的 Tomcat 日志翻转,那么我建议您搜索一下如何做到这一点,因为这是很常见的事情。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 2010-09-25
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多