内容基本上来自官方文档:http://tomcat.apache.org/tomcat-6.0-doc/logging.html 一、Webapp 记录日志的方法Tomcat 中的 webapp 有三种方法记录日志:
一般来说,每个 webapp 使用的日志框架都是独立的,不会影响其他 webapp。但如果用的是 Java 原生的 java.util.logging,由于它是通过系统加载的,因此各个 webapp 之间会共享同一个日志配置。 二、什么是 JULITomcat 默认会使用 java.util.logging (JUL) 日志框架,但重写了一些实现,以解决一个 JVM 中 JUL 只能使用一个配置文件的问题,满足多个 webapp 独立配置日志的需求。这个实现就叫 JULI (['d?u:li])。 全局日志配置
webapp 独立日志配置
控制台
三、JULI 对 JUL 的扩展
|
-
-
注意,如果一个 logger 已经指定了 handler,则默认不会将日志传递给上级 logger,但可以通过 useParentHandlers 修
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].useParentHandlers = true
-
注意,如果一个 logger 已经指定了 handler,则默认不会将日志传递给上级 logger,但可以通过 useParentHandlers 修
四、生产环境中的注意事项
- root logger 默认配置了 FileHandler 和 ConsoleHandler,而控制台输出一般又被保存到文件中,导致相同的日志被保存了2份,可以考虑将 ConsoleHandler 从 root logger 中去除。
- 删除没必要的 handler,例如 host-manager 的。
- handler 默认使用系统默认编码,可以考虑显式指定编码。
- 考虑配置 access log,可参考 http://tomcat.apache.org/tomcat-6.0-doc/config/valve.html#Access_Log_Valve
五、其它
Tomcat 也能配置为使用 Log4j 代替 JULI 来处理日志,详见 http://tomcat.apache.org/tomcat-6.0-doc/logging.html#Using_Log4j
转载请保留固定链接: https://linuxeye.com/configuration/516.html