在Tomcat中配置详细的日志记录可以通过修改logging.properties
文件来实现。该文件位于<TOMCAT_HOME>/conf
目录下。Tomcat默认使用java.util.logging
进行日志记录,但你也可以配置Log4j或Logback等第三方日志库。以下是详细的配置步骤和代码示例:
1. 配置logging.properties
Tomcat默认使用java.util.logging
,你可以通过修改logging.properties
文件来配置详细的日志记录。
1.1 基本配置:
handlers = 1catalina.org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
.formatters = java.util.logging.SimpleFormatter
# 控制台日志输出
java.util.logging.ConsoleHandler.level = ALL
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
# 文件日志输出
1catalina.org.apache.juli.FileHandler.level = ALL
1catalina.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
1catalina.org.apache.juli.FileHandler.prefix = catalina.
1catalina.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
# 默认的日志级别配置
org.apache.catalina.level = FINE
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = FINE
org.apache.catalina.core.StandardContext.[Catalina].[localhost].level = FINE
org.apache.catalina.core.StandardWrapper.[Catalina].[localhost].level = FINE
1.2 配置更多的日志文件:
你可以添加更多的日志文件来记录不同类型的信息。例如,添加localhost.log
和manager.log
:
2localhost.org.apache.juli.FileHandler.level = ALL
2localhost.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.FileHandler.prefix = localhost.
2localhost.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
3manager.org.apache.juli.FileHandler.level = ALL
3manager.org.apache.juli.FileHandler.directory = ${catalina.base}/logs
3manager.org.apache.juli.FileHandler.prefix = manager.
3manager.org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
2. 配置Log4j日志记录
如果你希望使用Log4j进行日志记录,你需要进行以下配置:
2.1 下载Log4j和Tomcat JULI适配器
将log4j-core
, log4j-api
和tomcat-juli-adapters.jar
文件放入<TOMCAT_HOME>/lib
目录。
2.2 创建Log4j配置文件
在<TOMCAT_HOME>/lib
目录下创建log4j2.xml
文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{ISO8601} [%t] %-5p %c{2} - %msg%n"/>
</Console>
<File name="File" fileName="${sys:catalina.base}/logs/tomcat.log">
<PatternLayout>
<pattern>%d{ISO8601} [%t] %-5p %c{2} - %msg%n</pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="info">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
</Root>
<Logger name="org.apache.catalina" level="debug" additivity="false">
<AppenderRef ref="File"/>
</Logger>
</Loggers>
</Configuration>
2.3 修改logging.properties
将logging.properties
的内容改为:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = tomcat.
org.apache.juli.FileHandler.suffix = .log
org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
3. 配置Logback日志记录
如果你希望使用Logback进行日志记录,进行以下配置:
3.1 下载Logback和Tomcat JULI适配器
将logback-core
, logback-classic
和tomcat-juli-adapters.jar
文件放入<TOMCAT_HOME>/lib
目录。
3.2 创建Logback配置文件
在<TOMCAT_HOME>/lib
目录下创建logback.xml
文件:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/tomcat.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${catalina.base}/logs/tomcat.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="info">
<appender-ref ref="STDOUT" />
<appender-ref ref="FILE" />
</root>
<logger name="org.apache.catalina" level="debug" additivity="false">
<appender-ref ref="FILE" />
</logger>
</configuration>
3.3 修改logging.properties
将logging.properties
的内容改为:
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHandler
org.apache.juli.FileHandler.level = FINE
org.apache.juli.FileHandler.directory = ${catalina.base}/logs
org.apache.juli.FileHandler.prefix = tomcat.
org.apache.juli.FileHandler.suffix = .log
org.apache.juli.FileHandler.formatter = java.util.logging.SimpleFormatter
java.util.logging.ConsoleHandler.level = FINE
java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter
通过以上步骤,你可以在Tomcat中配置详细的日志记录,并根据需要选择不同的日志库(如java.util.logging
、Log4j或Logback)进行记录和管理。