【问题标题】:Why application (sysout/syserr) logs getting redirected to catalina.out do not have timestamps?为什么重定向到 catalina.out 的应用程序(sysout/syserr)日志没有时间戳?
【发布时间】:2018-01-04 15:12:54
【问题描述】:

Tomcat 版本:8.0.54 记录器:Tomcats 内部记录器 juli

Tomcat 生成的日志有时间戳, 而被重定向到 catalina.out 的应用程序日志(sysout/syserr)没有时间戳。

请建议我如何将时间戳添加到被重定向到 catalina.out 的应用程序日志(sysout/syserr)?

谢谢!

【问题讨论】:

  • 应用程序的输出日志没有理由应该有时间戳,除非您自己在应用程序中执行此操作。无论是写入 sysout/syserr 文本文件还是 catalina.out 文件。
  • 确保您的输出具有日期的 %d 字段,即 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS},如logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/…

标签: java tomcat logging


【解决方案1】:

如果您需要正确的时间戳(可能还有日志记录级别),您要么需要使用正确的记录器,要么自己将它们添加到您的 System.out.println() 语句中。

请注意,System.out 并非用于记录日志。实际上,同时写入 sysout 的两个线程还不如交错输出。甚至一个字符一个字符 - 甚至更可能在您以不同的步骤构造输出时(例如,使用 print 而没有 ln

【讨论】:

  • @OlafKnock 感谢您的建议。您能否建议可用于实现时间戳的外部记录器是什么。
  • 反正你用什么。 Java Logging, Log4j - 任何日志系统都关注时间戳和线程。你不是说你不知道日志库的存在,对吧?
  • @olafKnock 我听说过 log4j 但没用过。
  • @OlafKnock 有没有我们可以使用 tomcat juli logger 将时间戳附加到 system.out.println 消息?
猜你喜欢
  • 2014-07-23
  • 2021-07-13
  • 2019-09-11
  • 2022-08-23
  • 1970-01-01
  • 2016-04-11
  • 2020-12-24
  • 2014-09-19
  • 1970-01-01
相关资源
最近更新 更多