如何将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中新建/切换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文

C++ HTTP框架推荐(特点及优势)

《C++HTTP框架推荐(特点及优势)》:本文主要介绍C++HTTP框架推荐的相关资料,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Crow2. Drogon3. Pistache4. cpp-httplib5. Beast (Boos

SpringBoot基础框架详解

《SpringBoot基础框架详解》SpringBoot开发目的是为了简化Spring应用的创建、运行、调试和部署等,使用SpringBoot可以不用或者只需要很少的Spring配置就可以让企业项目快... 目录SpringBoot基础 – 框架介绍1.SpringBoot介绍1.1 概述1.2 核心功能2

Spring框架中@Lazy延迟加载原理和使用详解

《Spring框架中@Lazy延迟加载原理和使用详解》:本文主要介绍Spring框架中@Lazy延迟加载原理和使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录一、@Lazy延迟加载原理1.延迟加载原理1.1 @Lazy三种配置方法1.2 @Component

SpringBoot基于配置实现短信服务策略的动态切换

《SpringBoot基于配置实现短信服务策略的动态切换》这篇文章主要为大家详细介绍了SpringBoot在接入多个短信服务商(如阿里云、腾讯云、华为云)后,如何根据配置或环境切换使用不同的服务商,需... 目录目标功能示例配置(application.yml)配置类绑定短信发送策略接口示例:阿里云 & 腾

Pytest多环境切换的常见方法介绍

《Pytest多环境切换的常见方法介绍》Pytest作为自动化测试的主力框架,如何实现本地、测试、预发、生产环境的灵活切换,本文总结了通过pytest框架实现自由环境切换的几种方法,大家可以根据需要进... 目录1.pytest-base-url2.hooks函数3.yml和fixture结论你是否也遇到过

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.