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

相关文章

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

解决若依微服务框架启动报错的问题

《解决若依微服务框架启动报错的问题》Invalidboundstatement错误通常由MyBatis映射文件未正确加载或Nacos配置未读取导致,需检查XML的namespace与方法ID是否匹配,... 目录ruoyi-system模块报错报错详情nacos文件目录总结ruoyi-systnGLNYpe

java实现多数据源切换方式

《java实现多数据源切换方式》本文介绍实现多数据源切换的四步方法:导入依赖、配置文件、启动类注解、使用@DS标记mapper和服务层,通过注解实现数据源动态切换,适用于实际开发中的多数据源场景... 目录一、导入依赖二、配置文件三、在启动类上配置四、在需要切换数据源的类上、方法上使用@DS注解结论一、导入

Linux升级或者切换python版本实现方式

《Linux升级或者切换python版本实现方式》本文介绍在Ubuntu/Debian系统升级Python至3.11或更高版本的方法,通过查看版本列表并选择新版本进行全局修改,需注意自动与手动模式的选... 目录升级系统python版本 (适用于全局修改)对于Ubuntu/Debian系统安装后,验证Pyt

Python Web框架Flask、Streamlit、FastAPI示例详解

《PythonWeb框架Flask、Streamlit、FastAPI示例详解》本文对比分析了Flask、Streamlit和FastAPI三大PythonWeb框架:Flask轻量灵活适合传统应用... 目录概述Flask详解Flask简介安装和基础配置核心概念路由和视图模板系统数据库集成实际示例Stre

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

IDEA中新建/切换Git分支的实现步骤

《IDEA中新建/切换Git分支的实现步骤》本文主要介绍了IDEA中新建/切换Git分支的实现步骤,通过菜单创建新分支并选择是否切换,创建后在Git详情或右键Checkout中切换分支,感兴趣的可以了... 前提:项目已被Git托管1、点击上方栏Git->NewBrancjsh...2、输入新的分支的

Spring 框架之Springfox使用详解

《Spring框架之Springfox使用详解》Springfox是Spring框架的API文档工具,集成Swagger规范,自动生成文档并支持多语言/版本,模块化设计便于扩展,但存在版本兼容性、性... 目录核心功能工作原理模块化设计使用示例注意事项优缺点优点缺点总结适用场景建议总结Springfox 是

Python的端到端测试框架SeleniumBase使用解读

《Python的端到端测试框架SeleniumBase使用解读》:本文主要介绍Python的端到端测试框架SeleniumBase使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全... 目录SeleniumBase详细介绍及用法指南什么是 SeleniumBase?SeleniumBase

SpringBoot实现多环境配置文件切换

《SpringBoot实现多环境配置文件切换》这篇文章主要为大家详细介绍了如何使用SpringBoot实现多环境配置文件切换功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 示例代码结构2. pom文件3. application文件4. application-dev文