`
lfwer
  • 浏览: 86390 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

springboot集成log4j2

 
阅读更多

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框架配置log4j和log4j2的配置代码

    本文将详细介绍如何在SpringBoot项目中配置Log4j和Log4j2。 ### SpringBoot与Log4j Log4j是Apache的一个开源项目,用于生成日志。它的核心功能包括定义日志级别(如DEBUG、INFO、WARN、ERROR),配置日志输出目的...

    Springboot整合log4j2日志全解总结

    Springboot 整合 log4j2 日志全解总结 本文主要介绍了 Springboot 整合 log4j2 日志的实现 шаги,旨在帮助开发者更好地理解日志框架在 Springboot 项目中的应用。 日志框架的重要性 在项目推进中,日志框架的...

    springboot_log4j2下载

    spring boot 集成log4j2工程,多环境下使用不同的log4j2配置文件。 对应的博客地址:http://blog.csdn.net/woniu211111/article/details/54347846

    springboot+mybatis+log4j2

    在项目中,"springBootMybatis"这个压缩包文件可能包含了以下内容:Spring Boot的启动类、MyBatis的相关配置(如`mybatis-config.xml`)、Mapper接口及对应的XML映射文件、实体类、服务层接口和实现、以及Log4j2的...

    springboot-log4j.zip

    本压缩包“springboot-log4j.zip”显然是关于如何在Spring Boot项目中集成和配置Log4j的实例代码。 首先,我们需要理解Spring Boot的日志系统。Spring Boot默认使用Logback作为其日志系统,但同时也支持其他日志...

    SpringBoot整合log4j223

    2. **配置Log4j2**: Spring Boot默认的日志系统是Logback,因此我们需要自定义配置以使用Log4j2。在`src/main/resources`目录下创建一个名为`log4j2.xml`或`log4j2.json`的配置文件,例如: ```xml [%t] %-5...

    SpringBoot2.X整合Mybatis代码示例2-使用配置文件方式+Log4j

    本文将深入探讨如何在SpringBoot 2.x版本中整合Mybatis,并利用Log4j进行日志记录。 首先,让我们了解SpringBoot与Mybatis整合的基本步骤: 1. **添加依赖**:在`pom.xml`文件中,我们需要引入Spring Boot的...

    SpringBoot整合log4j

    **SpringBoot整合Log4j详解** 在Java开发中,日志记录是不可或缺的一部分,它能够帮助开发者追踪程序运行状态、定位错误以及进行性能分析。Spring Boot作为一款简化Spring应用初始搭建以及开发过程的框架,提供了对...

    springboot_log4j2_flume

    Log4j直接发送数据到Flume + Kafka (方式一) 通过flume收集系统日记, 收集的方式通常采用以下. 系统logs直接发送给flume系统, 本文主要记录种方式进行说明. 文章链接,请看:...

    SpringBoot中使用log4j进行日志管理示例源码

    本示例源码将展示如何在Spring Boot项目中集成和使用Log4j进行日志管理。 首先,我们需要在Spring Boot项目的`pom.xml`文件中添加Log4j的依赖。确保你的Maven依赖中有以下内容: ```xml &lt;groupId&gt;org.spring...

    SpringBoot集成slf4j+log4j2的示例代码

    SpringBoot集成slf4j+log4j2的示例代码 在本文中,我们将介绍如何在SpringBoot项目中集成slf4j和log4j2,以实现更好的日志记录和管理。Slf4j是一个通用的日志接口,log4j2是一个具体的日志实现框架,两者结合使用...

    springboot2-log4j2-demo:springboot2+log4j2简单demo

    springboot2+log4j2简单demo,以后开发,需要用到哪种配置,或者需要集成log,直接使用demo的代码就可以了。 而且本demo对新手友好,简单的配置不会删除。也同时保有略复杂的配置 ##v1.0 因为springboot2的log4j2自动...

    SpringBoot第 3 讲:SpringBoot+Junit+Log4J

    5. **在SpringBoot中集成Log4J**: 首先,需要在项目中引入Log4J的依赖。然后,在资源目录下创建`log4j.properties`或`log4j2.xml`配置文件,设置日志输出级别、目标和格式。SpringBoot会自动识别并加载这个配置,...

    springboot集成phoenix/presto/tidb/redis各模式等组件demo.zip

    此springboot--demo集成了以下组件,demo如无法运行、或缺失相应组件demo无法调用可以私聊52fighting https://blog.csdn.net/qq_25073261/article/details/105517616 ...12. Log4j2 13. poi excel

    IDEA下springboot+mybatis+log4j

    【标题】"IDEA下springboot+mybatis+log4j"所涉及的知识点主要集中在Java开发环境的集成、Spring Boot框架的应用、MyBatis持久层框架的使用以及日志管理工具Log4j和SLF4J的配置与实践。 首先,IntelliJ IDEA(简称...

    springboot+swagger3+mybatis-plus3.5.1代码生成+druid+log4j2【最完美】的一次配置

    在SpringBoot中集成Log4j2,我们需要在资源目录下创建log4j2.xml或log4j2.json配置文件,定义日志级别、输出格式和目的地。 这个"template-master"可能是项目模板,包含了一个完整的配置示例。在这个模板中,你可能...

    基于springboot集成hbase过程解析

    知识点2:SpringBoot集成HBase的依赖 要将SpringBoot集成HBase,需要添加以下依赖项: * spring-data-hadoop-hbase:提供了HBase的依赖项,版本号为2.5.0.RELEASE。 * hbase-client:提供了HBase的客户端依赖项,...

    springmvc log4j2 logback 注解 jackson 日志脱敏实现源码

    本资源包含的是关于`SpringMVC`、`Log4j2`、`Logback`以及`Jackson`的日志脱敏实现源码,提供了多种实现方式,旨在帮助开发者在保障信息安全的同时,充分利用日志进行系统分析。 1. **基于正则表达式的日志脱敏实现...

    基于springboot集成jersey的框架

    本篇文章将深入探讨如何基于SpringBoot集成Jersey框架,同时利用Redis作为缓存,Druid作为数据源连接池,MyBatis作为持久层框架,以及Log4j2进行日志管理,从而打造一个强大的微服务应用。 首先,SpringBoot简化了...

    SpringBoot2 集成log4j2日志框架的实现

    在本文中,我们将深入探讨如何在SpringBoot 2应用程序中集成Log4j2日志框架。Log4j2是Log4j的升级版,它带来了许多改进,包括更好的性能和可扩展性,使得它成为现代Java应用日志记录的理想选择。在某些情况下,特别...

Global site tag (gtag.js) - Google Analytics