tomcat webapp 服务器中的“catalina.out”和“catalina.YYYY-MM-DD.log”日志文件有啥区别?

Posted

技术标签:

【中文标题】tomcat webapp 服务器中的“catalina.out”和“catalina.YYYY-MM-DD.log”日志文件有啥区别?【英文标题】:What is the difference between ‘catalina.out’ and ‘catalina.YYYY-MM-DD.log’ log files in tomcat webapp server?tomcat webapp 服务器中的“catalina.out”和“catalina.YYYY-MM-DD.log”日志文件有什么区别? 【发布时间】:2019-01-29 20:13:14 【问题描述】:

在 tomcat 服务器中,logs 文件夹包含这些文件

localhost.YYYY-MM-DD.log:主机的日志 host-manager.YYYY-MM-DD.logma​​nager.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”。 我使用 sl4j 和 log4j 作为日志工具包。

【问题讨论】:

似乎 System.out 和 System.err 被重定向到 catalina.out。不是所有的日志记录。 catalina.out 用于存储控制台输出。 catalina.out 是当前日志。 catalina.yyy-mm-dd.log 是上一个/旋转的日志 我看到它们都包含相似的内容。 Catalina.out 几乎包含日志中的所有内容,包括更多内容。 在 conf 中发布配置文件、tomcat 版本的 log4j 以及通常在 webapp 类路径的根目录中的 log4j 应用程序配置可能会很有用。其中之一可能配置了一个附加器,它将东西放入 catalina.out 而不是旋转的。如果这是产生如此多输出的原因,您也可以考虑降低日志记录级别。 【参考方案1】:

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

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

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

【讨论】:

【参考方案2】:
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");

【讨论】:

以上是关于tomcat webapp 服务器中的“catalina.out”和“catalina.YYYY-MM-DD.log”日志文件有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

单机多实例tomcat 部署

tomcat ROOT中的lib和webapp中的lib的作用

webapp部署到tomcat服务器

Tomcat正常启动,可以访问tomcat主页,却不能访问webapp中的项目的jsp文件,这是啥原因?

tomcat webapp 服务器中的“catalina.out”和“catalina.YYYY-MM-DD.log”日志文件有啥区别?

在使用Eclipse导出时,Tomcat 7.0.52服务器不会将webapps中的war文件(压缩文件)解压缩为未压缩格式