SpringBoot整合Log4j2日志框架

这篇具有很好参考价值的文章主要介绍了SpringBoot整合Log4j2日志框架。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

SpringBoot底层默认使用logback日志框架。
切换使用Log4j2日志框架。

pom.xml配置

<!-- web场景启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
	<!-- 排除默认日志框架 -->
    <exclusions>
        <exclusion>
            <artifactId>spring-boot-starter-logging</artifactId>
            <groupId>org.springframework.boot</groupId>
        </exclusion>
    </exclusions>
</dependency>
<!-- 添加log4j2日志框架的场景启动器 -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>

log4j2-spring.xml

文件命名固定log4j2-spring.xml,让SpringBoot加载配置文件。
文件名为log4j2.xml,文件将绕过SpringBoot直接调用日志框架。

<?xml version="1.0" encoding="UTF-8"?>
<!--
Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,
当设置成trace时,可以看到log4j2内部各种详细输出
monitorInterval:Log4j能够自动检测修改配置文件和重新配置本身,设置间隔秒数
-->
<Configuration status="debug" monitorInterval="180" packages="com.evan" disableAnsi="false" >
    <!--日志级别以及优先级排序:
    OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL
    -->
    <properties>
        <!-- 文件日志在当前项目目录下 -->
        <property name="LOG_HOME">./logs</property>
        <!--文件日志在当前项目所在磁盘的根目录存储-->
        <!--<property name="LOG_HOME">/logs</property>-->
        <!--文件日志指定存储地址-->
        <!--<property name="LOG_HOME">D:/logs</property>-->
        <!--日志输出格式 -->
        <property name="PATTERN">%date{YYYY-MM-dd HH:mm:ss,SSS} %level [%thread][%file:%line] - %msg%n%throwable</property>
    </properties>
    <Appenders>
        <!--*********************控制台日志***********************-->
        <Console name="consoleAppender" target="SYSTEM_OUT">
            <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch) -->
            <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
            <!--设置日志格式及颜色-->
            <PatternLayout
                    pattern="%style{%d{ISO8601}}{bright,green} %highlight{%-5level} [%style{%t}{bright,blue}] %style{%C{}}{bright,yellow}: %msg%n%style{%throwable}{red}"
                     noConsoleNoAnsi="false"/>
        </Console>

        <!--*********************文件日志***********************-->
        <!--all级别日志-->
        <RollingFile name="allFileAppender"
                     fileName="${LOG_HOME}/all.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/all-%d{yyyy-MM-dd}-%i.log.gz">
            <!--设置日志格式-->
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 设置日志文件切分参数 -->
                <!--<OnStartupTriggeringPolicy/>-->
                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
                <SizeBasedTriggeringPolicy size="100MB"/>
                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
            <DefaultRolloverStrategy max="100"/>
        </RollingFile>

        <!--debug级别日志-->
        <RollingFile name="debugFileAppender"
                     fileName="${LOG_HOME}/debug.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/debug-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <!--过滤掉info及更高级别日志-->
                <ThresholdFilter level="info" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!--设置日志格式-->
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 设置日志文件切分参数 -->
                <!--<OnStartupTriggeringPolicy/>-->
                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
                <SizeBasedTriggeringPolicy size="100MB"/>
                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
            <DefaultRolloverStrategy max="100"/>
        </RollingFile>

        <!--info级别日志-->
        <RollingFile name="infoFileAppender"
                     fileName="${LOG_HOME}/info.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <!--过滤掉warn及更高级别日志-->
                <ThresholdFilter level="warn" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!--设置日志格式-->
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 设置日志文件切分参数 -->
                <!--<OnStartupTriggeringPolicy/>-->
                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
                <SizeBasedTriggeringPolicy size="100MB"/>
                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
            <!--<DefaultRolloverStrategy max="100"/>-->
        </RollingFile>

        <!--warn级别日志-->
        <RollingFile name="warnFileAppender"
                     fileName="${LOG_HOME}/warn.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log.gz">
            <Filters>
                <!--过滤掉error及更高级别日志-->
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
            </Filters>
            <!--设置日志格式-->
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 设置日志文件切分参数 -->
                <!--<OnStartupTriggeringPolicy/>-->
                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
                <SizeBasedTriggeringPolicy size="100 MB"/>
                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
            <DefaultRolloverStrategy max="100"/>
        </RollingFile>

        <!--error及更高级别日志-->
        <RollingFile name="errorFileAppender"
                     fileName="${LOG_HOME}/error.log"
                     filePattern="${LOG_HOME}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log.gz">
            <!--设置日志格式-->
            <PatternLayout>
                <pattern>%d %p %C{} [%t] %m%n</pattern>
            </PatternLayout>
            <Policies>
                <!-- 设置日志文件切分参数 -->
                <!--<OnStartupTriggeringPolicy/>-->
                <!--设置日志基础文件大小,超过该大小就触发日志文件滚动更新-->
                <SizeBasedTriggeringPolicy size="100 MB"/>
                <!--设置日志文件滚动更新的时间,依赖于文件命名filePattern的设置-->
                <TimeBasedTriggeringPolicy/>
            </Policies>
            <!--设置日志的文件个数上限,不设置默认为7个,超过大小后会被覆盖;依赖于filePattern中的%i-->
            <DefaultRolloverStrategy max="100"/>
        </RollingFile>

        <!--json格式error级别日志-->
        <RollingFile name="errorJsonAppender"
                     fileName="${LOG_HOME}/error-json.log"
                     filePattern="${LOG_HOME}/error-json-%d{yyyy-MM-dd}-%i.log.gz">
            <JSONLayout compact="true" eventEol="true" locationInfo="true"/>
            <Policies>
                <SizeBasedTriggeringPolicy size="100 MB"/>
                <TimeBasedTriggeringPolicy interval="1" modulate="true"/>
            </Policies>
        </RollingFile>
    </Appenders>

    <Loggers>
        <!-- 根日志设置 -->
        <Root level="debug">
            <AppenderRef ref="allFileAppender" level="all"/>
            <AppenderRef ref="consoleAppender" level="debug"/>
            <AppenderRef ref="debugFileAppender" level="debug"/>
            <AppenderRef ref="infoFileAppender" level="info"/>
            <AppenderRef ref="warnFileAppender" level="warn"/>
            <AppenderRef ref="errorFileAppender" level="error"/>
            <AppenderRef ref="errorJsonAppender" level="error"/>
        </Root>

        <Logger name="springfox" level="INFO"/>
        <!--spring日志-->
        <Logger name="org.springframework" level="info"/>
        <!--druid数据源日志-->
        <Logger name="druid.sql.Statement" level="info"/>
        <!-- mybatis日志 -->
        <Logger name="com.mybatis" level="warn"/>
        <Logger name="org.hibernate" level="warn"/>
        <Logger name="com.zaxxer.hikari" level="info"/>
        <Logger name="org.quartz" level="info"/>
        <Logger name="com.ym.learn" level="debug"/>
    </Loggers>

</Configuration>

控制台日志输出信息

SpringBoot整合Log4j2日志框架

日志文件生成

SpringBoot整合Log4j2日志框架

说明:日志文件生成在当前项目下文章来源地址https://www.toymoban.com/news/detail-837845.html

到了这里,关于SpringBoot整合Log4j2日志框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Springboot日志框架logback与log4j2

    目录 Springboot日志使用 Logback日志 日志格式 自定义日志格式 日志文件输出 Springboot启用log4j2日志框架 Springboot底层是使用slf4j+logback的方式进行日志记录 trace:级别最低 debug:调试级别的,常用于跟踪程序的进展 info:普通的打印信息(默认的日志级别) warn:警告级别,不影响

    2024年01月19日
    浏览(33)
  • 使用Log4j与log4j2配置mybatisplus打印sql日志

    环境:项目非完全spring项目,没有spring的配置文件。执行sql时老是不打印sql语句。因此进行修改,过程比较坎坷,记录一下。 我尝试使用log4j和log4j2进行配置 最终把这两种全部配置记录上 Log4j配置 如果项目用的是log4j需要进行配置打印sql的步骤 首先引入log4j的包 配置一下l

    2024年02月04日
    浏览(43)
  • 深入理解 SpringBoot 日志框架:从入门到高级应用——(五)Log4j2配置文件详解

    Log4j2 官方文档:https://logging.apache.org/log4j/2.x/manual/index.html Log4j2 是一个Java日志框架,用于记录应用程序在运行时的信息。它是 Log4j 的升级版本,提供了更快的处理速度,更快的日志记录和更丰富的日志记录功能,并支持异步日志记录,减少了对应用程序性能的影响。它可以

    2024年02月05日
    浏览(31)
  • 深入理解 SpringBoot 日志框架:从入门到高级应用——(六)Log4j2 输出日志到 QQ邮箱

    要实现将 log4j2 输出日志到 QQ 邮箱,需按照以下步骤进行: 在 QQ 邮箱中设置 SMTP 服务,开启 POP3/SMTP 服务,获取 SMTP 服务地址、端口号、登录邮箱账号和密码。 在 Java 项目中添加 Mail 依赖。 在 log4j2.xml 配置文件中,添加 SMTPAppender,指定SMTP服务器地址、端口号、邮箱账号和

    2024年02月09日
    浏览(28)
  • 【springboot】--集成log4j2日志功能

    springboot2.0版本默认集成logback日志框架,由于项目业务采集各种日志(系统日志、接口调用日志、业务日志)等,需要做一些定制化的业务。为了,这里介绍如何集成log4j2,按照规格输出日志,另外按照要求输出成文件。下面将具体介绍! pom引入

    2024年02月12日
    浏览(50)
  • springboot 日志管理之 log4j2

    1、log4j2 简介         Apache Log4j2是对Log4j的升级,它比其前身Log4j 1.x提供了重大改进,并提供了Logback中可用的许多改进,同时修复了Logback架构中的一些问题。 被誉为是目前最优秀的Java日志框架。 2、项中引入 log4j2 的方式 2.1、springboot 项目中 2.2、普通 java 项目中 3、在项

    2024年01月15日
    浏览(36)
  • 应用中日志的优雅使用(整合log4j2与SLF4J)

    应用中不可直接使用日志系统( Log4j、 Logback) 中的 API,而应依赖使用日志框架( SLF4J、 JCL–Jakarta Commons Logging) 中的 API,使用门面模式的日志框架,有利于维护和各个类的日志处理方式统一。 日志框架( SLF4J、 JCL–Jakarta Commons Logging)的使用方式(推荐使用 SLF4J) 所有

    2023年04月09日
    浏览(28)
  • 在SpringBoot-WebFlux中整合log4j2

      如果说在搭建项目时候第一事是创建项目,那么第二件事就一定是加入日志。日志在项目中有非常重要的作用,小到记录信息,大到排查问题,都要用到。    SpringBoot整合方式的POM在最后面第四点(最后面!最后面!最后面!),其他步骤一样 1、webflux增加pom依赖 2、

    2024年01月16日
    浏览(32)
  • Spring系列文章:Spring集成Log4j2⽇志框架、整合JUnit

    从Spring5之后,Spring框架⽀持集成的⽇志框架是Log4j2.如何启⽤⽇志框架: 第⼀步:引⼊Log4j2的依赖 第⼆步:在类的根路径下提供log4j2.xml配置⽂件(⽂件名固定为:log4j2.xml,⽂件必须放到类根路径 下。) 第三步:使⽤⽇志框架 依赖 单元测试 Spring提供的⽅便主要是这⼏个注

    2024年02月07日
    浏览(35)
  • Spring Boot中集成各种日志框架Logback、Log4j2和Java Util Logging

    Spring Boot支持多种日志框架,包括Logback、Log4j2和Java Util Logging(JUL)。在Spring Boot中,可以通过简单的配置来集成这些热门的日志框架。 下面将详细说明如何集成Logback、Log4j2和Java Util Logging,并提供相应的源代码示例。 集成Logback: Logback是Spring Boot默认的日志框架,它提供了高

    2024年02月05日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包