如何将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

相关文章

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

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1