如何将tomcat8的运行日志框架切换到log4j2

2023-12-07 02:08

本文主要是介绍如何将tomcat8的运行日志框架切换到log4j2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多项目都使用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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/464142

相关文章

Spring Boot整合log4j2日志配置的详细教程

《SpringBoot整合log4j2日志配置的详细教程》:本文主要介绍SpringBoot项目中整合Log4j2日志框架的步骤和配置,包括常用日志框架的比较、配置参数介绍、Log4j2配置详解... 目录前言一、常用日志框架二、配置参数介绍1. 日志级别2. 输出形式3. 日志格式3.1 PatternL

修改若依框架Token的过期时间问题

《修改若依框架Token的过期时间问题》本文介绍了如何修改若依框架中Token的过期时间,通过修改`application.yml`文件中的配置来实现,默认单位为分钟,希望此经验对大家有所帮助,也欢迎... 目录修改若依框架Token的过期时间修改Token的过期时间关闭Token的过期时js间总结修改若依

Oracle数据库如何切换登录用户(system和sys)

《Oracle数据库如何切换登录用户(system和sys)》文章介绍了如何使用SQL*Plus工具登录Oracle数据库的system用户,包括打开登录入口、输入用户名和口令、以及切换到sys用户的... 目录打开登录入口登录system用户总结打开登录入口win+R打开运行对话框,输php入:sqlp

IDEA如何切换数据库版本mysql5或mysql8

《IDEA如何切换数据库版本mysql5或mysql8》本文介绍了如何将IntelliJIDEA从MySQL5切换到MySQL8的详细步骤,包括下载MySQL8、安装、配置、停止旧服务、启动新服务以及... 目录问题描述解决方案第一步第二步第三步第四步第五步总结问题描述最近想开发一个新应用,想使用mysq

React实现原生APP切换效果

《React实现原生APP切换效果》最近需要使用Hybrid的方式开发一个APP,交互和原生APP相似并且需要IM通信,本文给大家介绍了使用React实现原生APP切换效果,文中通过代码示例讲解的非常... 目录背景需求概览技术栈实现步骤根据 react-router-dom 文档配置好路由添加过渡动画使用

Spring Boot实现多数据源连接和切换的解决方案

《SpringBoot实现多数据源连接和切换的解决方案》文章介绍了在SpringBoot中实现多数据源连接和切换的几种方案,并详细描述了一个使用AbstractRoutingDataSource的实... 目录前言一、多数据源配置与切换方案二、实现步骤总结前言在 Spring Boot 中实现多数据源连接

MyBatis框架实现一个简单的数据查询操作

《MyBatis框架实现一个简单的数据查询操作》本文介绍了MyBatis框架下进行数据查询操作的详细步骤,括创建实体类、编写SQL标签、配置Mapper、开启驼峰命名映射以及执行SQL语句等,感兴趣的... 基于在前面几章我们已经学习了对MyBATis进行环境配置,并利用SqlSessionFactory核

springboot3打包成war包,用tomcat8启动

1、在pom中,将打包类型改为war <packaging>war</packaging> 2、pom中排除SpringBoot内置的Tomcat容器并添加Tomcat依赖,用于编译和测试,         *依赖时一定设置 scope 为 provided (相当于 tomcat 依赖只在本地运行和测试的时候有效,         打包的时候会排除这个依赖)<scope>provided

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF