介绍
在使用Tomcat服务器时,通常需要对服务器的运行状态进行特定的记录,例如:访问日志、错误日志、调试日志等。而catalina.out则是Tomcat服务中的一种重要的日志文件,其中一般会记录Tomcat服务器的所有日志,包括控制台的输出信息、访问日志、错误日志等。在Tomcat服务器中,默认的日志实现是JUL(Java Util Logging),但是这个日志模块并不方便调试和管理。而另一款更加流行的日志实现方式Log4j,可以通过自身强大的功能极大地提高对Tomcat日志的管理和调试。
配置步骤
1.下载log4j的jar包文件,并将其放入Tomcat的lib目录中。
2.在Tomcat安装目录下的conf/log4j.properties文件中进行配置。配置这个文件,可以改变Tomcat日志文件的名称、大小、滚动策略、输出级别等等。关于这个配置文件的更详细信息,可以搜索Apache Log4j项目的官方文档。
以下是一个log4j.properties配置实例:
### Define loggers
# Verbose loggers for several Tomcat related components and subsystems
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[myapp]=DEBUG
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina]=DEBUG
log4j.logger.org.apache.catalina.core.StandardContext=DEBUG
log4j.logger.org.apache.catalina.loader.WebappClassLoader=DEBUG
### Define appenders
# Redirect stdout and stderr to the log file (Tomcat’s console output)
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c- %m%n
# Create a file appender for our catalina.instance.log
log4j.appender.CATALINA=org.apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.out
log4j.appender.CATALINA.MaxFileSize=10MB
log4j.appender.CATALINA.MaxBackupIndex=4
log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern=%d [%t] %-5p %c- %m%n
### Root logger gets special handling, has its own Appender
log4j.rootLogger=INFO, CATALINA
3.修改Tomcat启动脚本中的配置,在CATALINA_OPTS配置中设置log4j的参数。CATALINA_OPTS用于传递通用的启动参数,因此可以将log4j的参数放入其中。
以下是修改后的启动脚本内容示例:
CATALINA_OPTS="-Dlog4j.configuration=file:/path/to/conf/log4j.properties"
示例1
以CentOS 7系统为例,下载Log4j的jar包:
wget https://logging.apache.org/log4j/1.2/download.html -O log4j-1.2.17.tar.gz
tar -zxvf log4j-1.2.17.tar.gz
cp log4j-1.2.17/log4j-1.2.17.jar /usr/local/tomcat/lib/
在Tomcat的conf目录下,新建log4j.properties文件:
### Define loggers
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[myapp]=DEBUG
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG
log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina]=DEBUG
log4j.logger.org.apache.catalina.core.StandardContext=DEBUG
log4j.logger.org.apache.catalina.loader.WebappClassLoader=DEBUG
### Define appenders
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d [%t] %-5p %c- %m%n
log4j.appender.CATALINA=org.apache.log4j.RollingFileAppender
log4j.appender.CATALINA.File=${catalina.base}/logs/catalina.out
log4j.appender.CATALINA.MaxFileSize=10MB
log4j.appender.CATALINA.MaxBackupIndex=4
log4j.appender.CATALINA.layout=org.apache.log4j.PatternLayout
log4j.appender.CATALINA.layout.ConversionPattern=%d [%t] %-5p %c- %m%n
### Root logger gets special handling, has its own Appender
log4j.rootLogger=INFO, CATALINA
修改Tomcat的启动脚本,新增一行CATALINA_OPTS的配置:
vi /etc/profile.d/tomcat.sh
export CATALINA_OPTS='-Dlog4j.configuration=file:/opt/tomcat/conf/log4j.properties'
示例2
以Windows系统为例,下载Log4j的jar包:
1.打开Apache Log4j的下载链接 https://logging.apache.org/log4j/2.x/download.html。
2.在页面中,选择“Download Log4j 2”,会出现一个下载列表,选择“zip”格式的文件,点击下载。
3.解压下载包,将其中的log4j-core-.jar和log4j-api-.jar复制到Tomcat的lib目录下。
4.在Tomcat的conf目录下新建log4j2.xml文件,进行如下配置:
<?xml version=”1.0″ encoding=”UTF-8″?>
<Configuration status=”WARN”>
<Appenders>
<Console name=”Console” target=”SYSTEM_OUT”>
<PatternLayout pattern=”%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n” />
</Console>
<File name=”MyFile” fileName=”${catalina.base}/logs/catalina.out”>
<PatternLayout pattern=”%d{yyyy/MM/dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n” />
</File>
</Appenders>
<Loggers>
<Logger name=”com.example.package.name” level=”debug” />
<Root level=”info”>
<AppenderRef ref=”Console” />
<AppenderRef ref=”MyFile” />
</Root>
</Loggers>
</Configuration>
5.修改Tomcat的启动脚本,新增CATALINA_OPTS的配置:
set CATALINA_OPTS=-Dlog4j.configurationFile=file:/D:/apache-tomcat/logs/log4j2.xml
注意事项
在配置log4j时,需要注意以下几个问题:
1.日志文件位置: c 的默认位置是在 ${catalina.base}/logs 目录下,如果该目录不存在,则需要创建。如果配置log4j2,则建议将日志文件名设置为 catalina.log 或其他非catalina.out的名称,否则可能会有问题。
2.受保护的日志文件: Windows操作系统不允许使用某些特定的文件名进行重定向,例如 con,因此如果将日志的输出文件名设置为 con,可能会出现权限问题,需要注意。
3.不能输入中文: 不要再log4j.properties中写中文配置,因为log4j.properties是按照ISO-8859-1编码的,不支持中文。如果需要在配置文件中使用中文,可以使用log4j.xml并且指定编码为UTF-8。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Tomcat使用Log4j输出catalina.out日志 - Python技术站