1 先将SpringBoot自带的日志存储Logback禁用
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>
2 删掉log4j的依赖,引入log4j2的包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<!- -异步记录日志 - 需要LMAX Disruptor的支持
-->
<dependency>
<groupId>com.lmax</groupId>
<artifactId>disruptor</artifactId>
<version>3.3.6</version>
</dependency>
<!-- 加入log4j和log4j2的连接包,这样不用修改代码就能从log4j直接升级到log4j2 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-1.2-api</artifactId>
<version>2.7</version>
</dependency>
3 在src/main/resource加入log4j2-spring.xml配置文件,取名一定是log4j2-spring,这样省的在application.yml配置
<?xml version="1.0" encoding="UTF-8"?> <!--设置log4j2的自身log级别为warn--> <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL --> <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置, 当设置成trace时,你会看到log4j2内部各种详细输出--> <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数--> <configuration status="warn" monitorInterval="30"> <!--先定义所有的appender--> <appenders> <!--这个输出控制台的配置--> <console name="Console" target="SYSTEM_OUT"> <!--输出日志的格式--> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> </console> <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,这个也挺有用的,适合临时测试用--> <File name="log" fileName="log/test.log" append="false"> <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/> </File> <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size, 则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档--> <RollingFile name="RollingFileInfo" fileName="${sys:user.home}/logs/hpaasvc/info.log" filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log"> <Filters> <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)--> <ThresholdFilter level="INFO" onMatch="ACCEPT" onMismatch="DENY"/> <ThresholdFilter level="WARN" onMatch="DENY" onMismatch="NEUTRAL"/> </Filters> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> <!--自动删除超过120天的日志压缩文件--> <DefaultRolloverStrategy> <Delete basePath="${baseDir}" maxDepth="2"> <IfFileName glob="*/baseCollection-*.log.gz"/> <IfLastModified age="120d"/> </Delete> </DefaultRolloverStrategy> </RollingFile> <RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/hpaasvc/warn.log" filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log"> <Filters> <ThresholdFilter level="WARN" onMatch="ACCEPT" onMismatch="DENY"/> <ThresholdFilter level="ERROR" onMatch="DENY" onMismatch="NEUTRAL"/> </Filters> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件,这里设置了20 --> <DefaultRolloverStrategy max="20"/> </RollingFile> <RollingFile name="RollingFileError" fileName="${sys:user.home}/logs/hpaasvc/error.log" filePattern="${sys:user.home}/logs/hpaasvc/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log"> <ThresholdFilter level="ERROR"/> <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/> <Policies> <TimeBasedTriggeringPolicy/> <SizeBasedTriggeringPolicy size="100 MB"/> </Policies> </RollingFile> </appenders> <!--然后定义logger,只有定义了logger并引入的appender,appender才会生效--> <loggers> <!--过滤掉spring和hibernate的一些无用的debug信息--> <logger name="org.springframework" level="INFO"> </logger> <logger name="org.mybatis" level="INFO"> </logger> <AsyncRoot level="all"> <appender-ref ref="Console"/> <appender-ref ref="RollingFileInfo"/> <appender-ref ref="RollingFileWarn"/> <appender-ref ref="RollingFileError"/> </AsyncRoot> </loggers> </configuration>
相关推荐
主要介绍了Springboot整合log4j2日志全解总结,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
spring boot 集成log4j2工程,多环境下使用不同的log4j2配置文件。 对应的博客地址:http://blog.csdn.net/woniu211111/article/details/54347846
Log4j直接发送数据到Flume + Kafka (方式一) 通过flume收集系统日记, 收集的方式通常采用以下. 系统logs直接发送给flume系统, 本文主要记录种方式进行说明. 文章链接,请看:...
主要介绍了SpringBoot集成slf4j+log4j2的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
springboot2+log4j2简单demo,以后开发,需要用到哪种配置,或者需要集成log,直接使用demo的代码就可以了。 而且本demo对新手友好,简单的配置不会删除。也同时保有略复杂的配置 ##v1.0 因为springboot2的log4j2自动...
此springboot--demo集成了以下组件,demo如无法运行、或缺失相应组件demo无法调用可以私聊52fighting https://blog.csdn.net/qq_25073261/article/details/105517616 ...12. Log4j2 13. poi excel
主要介绍了SpringBoot2 集成log4j2日志框架的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
集成redis、druid、jersey、springboot、mybatis、log4j2等框架
新手入门专用,赶紧来看看 (这里用的是springboot2.2.1.RELEASE,高版本可能容易出错)
本文主要介绍了在 Spring Boot 框架中如何使用 Log4j 和 Slf4j,并通过对比分析它们的优缺点,帮助读者更好地选择合适的日志记录工具。文章中提供了完整的示例代码,并附有详细的注释说明。 Log4j 和 Slf4j 都是...
初学者的福音,最近一直在折腾springboot版本的问题,发现在集成三方库时v2和v3版本完全不兼容。平滑升级相当困难,在用springboot3做新项目时也遇到了很多官方文档不详细的原因,所以特整理了一个干净版本的开发...
集成log4j2,所有需要的配置文件。已实际运用在生产环境项目中。 springboot项目直接放在resources 目录下。
springboot+maven+mybatis+log4j2+idea的框架搭建,其中包含了一个工程集成了多个数据库系统的编写,log4j2的XML 与yml格式的配置
现在很流行springboot的开发,小编闲来无事也学了学,开发过程中遇见了log4j日志的一个小小问题,特此记载。 首先在pox.xml中引入对应的maven依赖: <!-- 引入log4j--> <groupId>org.springframework....
此包运行springboot+mvn+mybaits + log4j + mysql的框架集成,只需修改数据库及表的字段就可直接编译运行,适用于使用springboot的初学者。
主要涉及log4j-2.15.0-rc2核心jar包以及springboot整合jar包
很简单的一个springboot框架集成log4j2 、devtools 版本如下: springboot 2.2.2.RELEASE log4j2 2.2.2.RELEASE jdk:1.8
SpringBoot集成MyBatisPlus 技术选型: 核心框架:Spring Boot 1.5.1 安全框架:Apache Shiro 视图框架:Spring MVC ...日志管理:SLF4J、Log4j 模版技术:FreeMarker 页面交互:BootStrap、Layer等
springboot-genspringBoot集成velocity模板引擎自动生成代码,集合maven插件自动生成代码。springboot 整合log4j2日志,以及thymeleaf模板,发送各种格式的邮件。
tags: [#springboot, #日志]1、默认实现的日志配置Spring boot默认已经集成了logging,同时也是默认开启的,如果想根据自己的需