3

在 tomcat 服务器中,logs 文件夹包含如下文件

  • localhost.YYYY-MM-DD.log:主机的日志
  • host-manager.YYYY-MM-DD.logmanager.YYYY-MM-DD.log : 相关 Web 应用的日志
  • catalina.YYYY-MM-DD.log: : 容器日志文件
  • catalina.out : ??

我了解“catalina.out”以外的所有日志文件。我在文档中寻找解释,但在“catalina.out”和“catalina.YYYY-MM-DD.log”之间找不到不同。当我浏览内容时,两者看起来都很相似。有人可以帮我区分它们吗?

注意:我正在研究这个的原因是我的生产服务器,“catalina.out”文件变得越来越大(现在大约 12 GB)。这可能随时使我的应用程序崩溃,因为在“catalina.out”变得超过 2gb(作为 Tomcat 参考)之后,tomcat 不会保证应用程序崩溃。其余选项是使用 Logrotate 等 3rd 方工具旋转“catalina.out”或清理“catalina.out”。我正在使用带有 log4j 的 sl4j 作为日志记录工具包。

4

2 回答 2

2

根据 tomcat文档 catalina.out 包含所有输出到 System.err/out (通常是控制台日志)

所有其他日志记录由应用程序完成(默认情况下,使用 juli 框架,但 log4j 也很流行)。请参阅上面链接中的配置文件示例 - 它包含日志文件名前缀,如 catalina. 本地主机。经理。- 这是 catalina.log 的来源
另请参阅此处了解可能的日志记录和日志轮换参数。(可能证明有用)

这意味着:应用程序日志和日志轮换由日志框架(juli,log4j ..)管理,所有逃避它的东西(tomcat 启动/关闭,未捕获的异常,对处理程序和控制台都进行的日志记录)去到 catalina.out
由于控制台位于 tomcat 及其所有记录器的“上方”,因此无法在 tomcat 内部旋转 catalina.out。

于 2021-03-12T15:28:16.517 回答
1
private static final Logger log = LoggerFactory.getLogger(Foo.class);
...
log.info("This line will go to Catalina.YYYY-MM-DD.log");
System.out.println("This line will go to Catalina.out");
于 2020-09-03T16:06:30.100 回答