这里的日志文件,特指大家在平时的产品开发、产品运维过程中会经常接触的文件,主要有两种:

  • tomcat 产生的日志文件
  • 应用程序产生的日志文件

此处暂不讨论数据库方面的日志文件。

根据我和一些同学在工作中的接触,有些人对这方面并不太了解,这会导致我们在产品运维工作中遇到一些不必要的麻烦。所以我觉得有必要以自己的方式来说明一下,也欢迎大家提出异议和建议。

两种日志文件的区别

为了容易说明上述两种日志文件的区别,我根据日志文件的来源把它们分别称为:tomcat 日志、应用日志。

什么是 tomcat 日志?

tomcat 日志默认在 tomcat/logs 目录下,一般大家最熟悉的就是 catalina.out 这个文件,实际上所有输出到控制台的内容都包含在这个文件中。
另外还有一些其他的 tomcat 服务启动、停止的日志、网页访问日志等,一般我们不太关注这些日志。

什么是应用日志?

应用日志指业务系统产生的日志文件,一般默认生成在 tomcat/logs/xxx 目录下,每日一个文件。例如 Passport 的当日的日志文件为 tomcat/logs/passport/passport.log。

应用日志和 tomcat 日志有啥联系?

我们的应用程序在日志输出上可以指定目标,一般最常用的两个目标是:文件、控制台。输出到文件的日志会生成到 /usr/local/tomcat/logs/xxx 目录下,而输出到控制台的日志,则一般存在于 catalina.out 文件。

这么多日志很麻烦,只看 catalina.out 不就好了吗?

从目前实际情况来看,可以说 catalina.out 文件就是一个大杂脍,包含了各个虚拟主机中的应用系统输出到控制台的信息以及 tomcat 自身的一些信息。而这个文件的内容会不断累加(不会自动截断,一般手工处理),所以时间长了以后文件往往会超大,动辄好几个 G。当应用程序出现故障时,此文件又大内容又杂,必然给问题原因的查找定位带来更大的麻烦。

所以,不推荐通过查看这个文件来定位应用程序的问题。而且,应用程序也不应该把日志信息输出到控制台,这样就避免了这个文件大小以比较快的速度增长。