如何将tomcat8的运行日志框架切换到log4j2
来源:互联网 发布:teradata advanced sql 编辑:程序博客网 时间:2024/06/08 16:32
很多项目都使用log4j作为日志框架,但是tomcat默认的框架不是log4j的,打印出来的日志也不会保存到项目指定的地方,而对于那些系统运行过程中出现的异常信息,我们是需要监控的,所以我们会希望tomcat和项目的日志放到一个地方,这时我们就需要修改tomcat默认的日志框架。
tomcat官网上面有相关日志框架切换的文档,https://tomcat.apache.org/tomcat-8.0-doc/logging.html,不过这个是针对log4j的,现在大家都已经开始使用log4j2了,所以今天给大家介绍下tomcat8如何集成log4j2。
1,下载相关jar包
从tomcat官网上下载扩展包:tomcat-juli.jar和tomcat-juli-adapters.jar,log4j2我们用的版本是2.10,选择log4j-1.2-api-2.10.0.jar(用于log4j2与log4j1的桥接)、log4j-api-2.10.0.jar和log4j-core-2.10.0.jar三个包。
2,部署jar包
将log4j2的3个jar包和 tomcat-juli-adapters.jar放到tomact目录下的lib文件夹下,将tomcat-juli.jar复制到tomcat目录下bin文件夹下替换原来的文件。
3,创建日志配置文件
在tomcat目录下lib文件夹下创建log4j2.xml,文件内容如下:
<?xml version="1.0" encoding="UTF-8"?><configuration debug="off"> <Properties> <Property name="CATALINA_BASE_LOGPATH">../logs</Property> </Properties> <appenders> <console name="CONSOLE" target="SYSTEM_OUT"> <patternLayout charset="UTF-8" pattern="%date{yyyy-MM-dd HH:mm:ss}[%-5level]%logger[%L]-%message%n" /> </console> <rollingFile name="CATALINA" fileName="${CATALINA_BASE_LOGPATH}/catalina.log" filePattern="${CATALINA_BASE_LOGPATH}/catalina.%date{yyyyMMdd}"> <patternLayout charset="UTF-8" pattern="%date{yyyy-MM-dd HH:mm:ss}[%-5level]%logger[%L]-%message%n" /> <policies> <timeBasedTriggeringPolicy /> <SizeBasedTriggeringPolicy size="100 MB"/> </policies> </rollingFile> <rollingFile name="LOCALHOST" fileName="${CATALINA_BASE_LOGPATH}/localhost.log" filePattern="${CATALINA_BASE_LOGPATH}/localhost.%date{yyyyMMdd}"> <patternLayout charset="UTF-8" pattern="%date{yyyy-MM-dd HH:mm:ss}[%-5level]%logger[%L]-%message%n" /> <policies> <timeBasedTriggeringPolicy /> </policies> </rollingFile> <rollingFile name="MANAGER" fileName="${CATALINA_BASE_LOGPATH}/manager.log" filePattern="${CATALINA_BASE_LOGPATH}/manager.%date{yyyyMMdd}"> <patternLayout charset="UTF-8" pattern="%date{yyyy-MM-dd HH:mm:ss}[%-5level]%logger[%L]-%message%n" /> <policies> <timeBasedTriggeringPolicy /> </policies> </rollingFile> <rollingFile name="HOST-MANAGER" fileName="${CATALINA_BASE_LOGPATH}/host-manager.log" filePattern="${CATALINA_BASE_LOGPATH}/host-manager.%date{yyyyMMdd}"> <patternLayout charset="UTF-8" pattern="%date{yyyy-MM-dd HH:mm:ss}[%-5level]%logger[%L]-%message%n" /> <policies> <timeBasedTriggeringPolicy /> </policies> </rollingFile> </appenders> <loggers> <logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost]" level="INFO"> <appender-ref ref="LOCALHOST" /> </logger> <logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/manager]" level="INFO" additivity="false"> <appender-ref ref="MANAGER" /> </logger> <logger name="org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/host-manager]" level="INFO" additivity="false"> <appender-ref ref="HOST-MANAGER" /> </logger> <root level="INFO"> <appender-ref ref="CATALINA" /> <appender-ref ref="CONSOLE" /> </root> </loggers></configuration>
日志输出的格式可以根据自己的需要进行修改。
4,删除tomcat默认日志配置
删除tomact目录下conf文件夹下的logging.properties文件。
现在启动项目,查看输出的日志文件已经是log4j打印出来的了。
- 如何将tomcat8的运行日志框架切换到log4j2
- 如何将tomcat8的项目部署到tomcat7?
- log4j2 按照日志级别将日志输出到不同的文件
- 将后台运行的VMWare切换到前台
- slf4j+log4j2在tomcat8 下无日志输出
- 将tomcat运行时的日志输出到指定文件
- EMPLOG到SLF4J日志框架切换
- 感觉略炫酷的将正在运行的程序切换到后台运行
- 如何将LogCat上的日志输出到文件?
- Log4j2写日志的艺术
- Log4j2记录日志到数据库(MySQL&MongoDB)
- log4j2配置输出日志到Kafka
- Log4j2记录日志到数据库(MySQL&MongoDB)
- Log4j2记录日志到数据库(MySQL&MongoDB)
- 关于log4j2的重新加载,以及不同级别日志输出到不同日志文件
- 关于log4j2的重新加载,以及不同级别日志输出到不同日志文件
- 关于log4j2的重新加载,以及不同级别日志输出到不同日志文件
- 关于log4j2的重新加载,以及不同级别日志输出到不同日志文件
- python2.7实现简单日记本,兼容windows和linux
- OpenCV_处理视频序列
- jsp_JSTL标签
- TCP面试常见题:张小方的知乎Live:轻松搞定技术面试中常见的网络通信问题
- 17.12.19,web学习第二十九天,还有一年,努力吧青年ajax,cookie,分类分页显示
- 如何将tomcat8的运行日志框架切换到log4j2
- opencv imread读取不了数据
- Logger.getLogger()和LogFactory.getLog()的区别
- 中位数
- 关于java GUI方面用到的知识
- spring5.0解决Log4jConfigListener过期问题
- iOS
- winform读取配置文件App.config
- 设置免密码登陆