springboot整合log4j2

1,找到第一个启动类,排除logging

1 <exclusions><!-- 去掉springboot默认配置 -->
2        <exclusion>
3             <groupId>org.springframework.boot</groupId>
4             <artifactId>spring-boot-starter-logging</artifactId>
5      </exclusion>
6  </exclusions>

2,添加log4j2依赖

 <!-- log4j2. -->
 <dependency> <!-- 引入log4j2依赖 -->
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-log4j2</artifactId>
 </dependency>

3,添加log4j2-spring.xml

1 <?xml version="1.0" encoding="UTF-8"?>
  2 <!--Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
  3 <!--monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 -->
  4 <configuration monitorInterval="5">
  5     <!--日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
  6
  7     <!--变量配置 -->
  8     <Properties>
  9         <!-- 格式化输出:%date表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度 %msg:日志消息,%n是换行符 -->
 10         <!-- %logger{36} 表示 Logger 名字最长36个字符 -->
 11         <property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p - %F:%L - %m%n" />
 12         <!-- 定义日志存储的路径,不要配置相对路径 -->
 13         <property name="FILE_PATH" value="./logs" />
 14         <property name="FILE_NAME" value="cms" />
 15     </Properties>
 16
 17     <appenders>
 18
 19         <console name="Console" target="SYSTEM_OUT">
 20             <!--输出日志的格式 -->
 21             <PatternLayout pattern="${LOG_PATTERN}" />
 22             <!--控制台只输出level及其以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
 23             <ThresholdFilter level="DEBUG" onMatch="ACCEPT"
 24                 onMismatch="DENY" />
 25         </console>
 26
 27         <!--文件会打印出所有信息,这个log每次运行程序会自动清空,由append属性决定,适合临时测试用 -->
 28         <File name="Filelog" fileName="${FILE_PATH}/test.log" append="false">
 29             <PatternLayout pattern="${LOG_PATTERN}" />
 30         </File>
 31
 32         <!-- 这个会打印出所有的info及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
 33         <RollingFile name="RollingFileInfo"
 34             fileName="${FILE_PATH}/info.log"
 35             filePattern="${FILE_PATH}/${FILE_NAME}-INFO-%d{yyyy-MM-dd}_%i.log.gz">
 36             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
 37             <ThresholdFilter level="info" onMatch="ACCEPT"
 38                 onMismatch="DENY" />
 39             <PatternLayout pattern="${LOG_PATTERN}" />
 40             <Policies>
 41                 <!--interval属性用来指定多久滚动一次,默认是1 hour -->
 42                 <TimeBasedTriggeringPolicy interval="1" />
 43                 <SizeBasedTriggeringPolicy size="10MB" />
 44             </Policies>
 45             <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖 -->
 46             <DefaultRolloverStrategy max="15" />
 47         </RollingFile>
 48
 49         <!-- 这个会打印出所有的warn及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
 50         <RollingFile name="RollingFileWarn"
 51             fileName="${FILE_PATH}/warn.log"
 52             filePattern="${FILE_PATH}/${FILE_NAME}-WARN-%d{yyyy-MM-dd}_%i.log.gz">
 53             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
 54             <ThresholdFilter level="warn" onMatch="ACCEPT"
 55                 onMismatch="DENY" />
 56             <PatternLayout pattern="${LOG_PATTERN}" />
 57             <Policies>
 58                 <!--interval属性用来指定多久滚动一次,默认是1 hour -->
 59                 <TimeBasedTriggeringPolicy interval="1" />
 60                 <SizeBasedTriggeringPolicy size="10MB" />
 61             </Policies>
 62             <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖 -->
 63             <DefaultRolloverStrategy max="15" />
 64         </RollingFile>
 65
 66         <!-- 这个会打印出所有的error及以下级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档 -->
 67         <RollingFile name="RollingFileError"
 68             fileName="${FILE_PATH}/error.log"
 69             filePattern="${FILE_PATH}/${FILE_NAME}-ERROR-%d{yyyy-MM-dd}_%i.log.gz">
 70             <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
 71             <ThresholdFilter level="error" onMatch="ACCEPT"
 72                 onMismatch="DENY" />
 73             <PatternLayout pattern="${LOG_PATTERN}" />
 74             <Policies>
 75                 <!--interval属性用来指定多久滚动一次,默认是1 hour -->
 76                 <TimeBasedTriggeringPolicy interval="1" />
 77                 <SizeBasedTriggeringPolicy size="10MB" />
 78             </Policies>
 79             <!-- DefaultRolloverStrategy属性如不设置,则默认为最多同一文件夹下7个文件开始覆盖 -->
 80             <DefaultRolloverStrategy max="15" />
 81         </RollingFile>
 82
 83     </appenders>
 84
 85     <!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。 -->
 86     <!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效 -->
 87     <loggers>
 88
 89         <!--过滤掉spring和mybatis的一些无用的DEBUG信息 -->
 90         <logger name="org.mybatis" level="info" additivity="false">
 91             <AppenderRef ref="Console" />
 92         </logger>
 93         <!--监控系统信息 -->
 94         <!--若是additivity设为false,则 子Logger 只会在自己的appender里输出,而不会在 父Logger 的appender里输出。 -->
 95         <Logger name="org.springframework" level="info"
 96             additivity="false">
 97             <AppenderRef ref="Console" />
 98         </Logger>
 99
100         <root level="info">
101             <appender-ref ref="Console" />
102             <appender-ref ref="Filelog" />
103             <appender-ref ref="RollingFileInfo" />
104             <appender-ref ref="RollingFileWarn" />
105             <appender-ref ref="RollingFileError" />
106         </root>
107     </loggers>
108 </configuration>

  

原文地址:https://www.cnblogs.com/hedecai/p/12258008.html

时间: 2024-07-30 21:27:24

springboot整合log4j2的相关文章

SpringBoot整合log4j2导入新的依赖出现jar冲突解决

1.问题复现: 之前在SpringBoot中配置整合了log4j2,今天在pom文件中,导入新的依赖(依赖如下)之后, <dependency> <groupId>com.github.tobato</groupId> <artifactId>fastdfs-client</artifactId> <version>1.26.7</version> </dependency> 重启SpringBoot项目时,出

springboot整合log4j2日志框架

springboot依赖中默认引入spring-boot-starter-logging,若要使用log4j2日志框架,则需要先将spring-boot-starter-logging排除. 方法: 在依赖关系图中找到spring-boot-starter-logging,单击右键选择exclude将其排除出去. pom文件中引入: <dependency> <groupId>org.springframework.boot</groupId> <artifact

springboot整合mybatis+oracle

第一步 认识springboot :springboot是为了解决配置文件多,各个组件不统一的问题,它省去了很多配置文件,同时实现了spring产品的整合. 创建springboot项目:通过选择springinit初始化springboot,我们发现它的pom.xml拥有绝大部分的spring所需要的包. 第二步 打开项目的结构,发现有了有趣的部分 在原有的java结构上,公司名称下多了一级叫做自己的项目名的一个目录,这个目录下才是相应的Controlller等层,而且在此目录下面有了一个文件

SpringBoot整合Swagger2

手写Api文档的几个痛点: 文档需要更新的时候,需要再次发送一份给前端,也就是文档更新交流不及时. 接口返回结果不明确 不能直接在线测试接口,通常需要使用工具,比如postman 接口文档太多,不好管理 Swagger也就是为了解决这个问题,当然也不能说Swagger就一定是完美的,当然也有缺点,最明显的就是代码移入性比较强. 其他的不多说,想要了解Swagger的,可以去Swagger官网,可以直接使用Swagger editor编写接口文档,当然我们这里讲解的是SpringBoot整合Swa

SpringBoot 2.SpringBoot整合Mybatis

一.创建Springboot的配置文件:application.properties SpringApplication 会从 application.properties 文件中加载配置信息,下面是添加Spring配置信息的文件目录顺序: 当前目录下的/config子目录中 当前目录中 一个 classpath 包下的 /config 目录中 classpath 根目录中 大家根据自己习惯来即可. /application.properties 文件配置如下: spring.datasourc

springboot学习笔记-6 springboot整合RabbitMQ

一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache). 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者,消息队列,消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息

SpringBoot整合Quartz定时任务

记录一个SpringBoot 整合 Quartz 的Demo实例 POM.XML文件 <!-- 定时器任务 quartz需要导入的坐标 --> <dependency> <groupId>org.quartz-scheduler</groupId> <artifactId>quartz</artifactId> <version>1.8.5</version> </dependency> 类似于控制

springboot系列-springboot整合RabbitMQ

一 RabbitMQ的介绍 RabbitMQ是消息中间件的一种,消息中间件即分布式系统中完成消息的发送和接收的基础软件.这些软件有很多,包括ActiveMQ(apache公司的),RocketMQ(阿里巴巴公司的,现已经转让给apache). 消息中间件的工作过程可以用生产者消费者模型来表示.即,生产者不断的向消息队列发送信息,而消费者从消息队列中消费信息.具体过程如下: 从上图可看出,对于消息队列来说,生产者,消息队列,消费者是最重要的三个概念,生产者发消息到消息队列中去,消费者监听指定的消息

springboot整合mybatis,freemarker

springboot 整合mybaits,,freemarker pom.xml文件 <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation=&