springboot集成log4j2 附完整配置

限时加码!20+主流AI编程工具免费用 购周边加赠Coding Plan Lite,Claude Code、Cursor等即刻畅享,学习进阶更高效! 阅读详情

首先看一下springboot官方文档: https://docs.spring.io/spring-boot/docs/1.5.19.RELEASE/reference/htmlsingle/#howto-configure-log4j-for-logging

开始配置

在pom.xml里面加入这个

<!--使用log4j2-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-logging</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>

然后resources里新建一个文件 log4j2.xml,内容如下

<?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/yyw/info.log"
                     filePattern="${sys:user.home}/logs/yyw/$${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>
        </RollingFile>

        <RollingFile name="RollingFileWarn" fileName="${sys:user.home}/logs/yyw/warn.log"
                     filePattern="${sys:user.home}/logs/yyw/$${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/yyw/error.log"
                     filePattern="${sys:user.home}/logs/yyw/$${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 name="org.eclipse.jetty" level="INFO"/>
        <logger name="org.mybatis" level="INFO"/>
        <root level="all">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        </root>
    </loggers>
</configuration>

然后在application.yml文件里指定一下配置文件

logging:
  config: classpath:log4j2.xml

然后运行就OK了

 

Log4j2日志记录框架的使用教程与简单实例 1、Log4j2的使用教程 1.1简介 Log4j的1.x版本虽然已经被广泛使用于很多应用程序中,但由于出现内存泄漏等bug,代码难以维护,以及需要使用老版本的jdk等劣势,在2015年8月已经玩完。它的替代品,SLF4J,Logback,Log4j2对日志框架做了很多必要的改进。 历史上出现了很多的日记框架,如: Log4j:Apache Log4j是一个基于Java的日志记录工具。它... 阅读详情

相关推荐

SpringBoot集成Log4j2

SpringBoot集成log4j2

当年为啥要给博客写个真名 857

log4j2日志框架配置+日志记录写入数据库

import com/*** @description: TODO 单例模式数据库连接工厂方法static {// 验证数据源配置是否正确,尝试获取连接 try(Connection testConnection = druidDataSource . getConnection()) {= null) {} else {} } /*** 获取数据库连接。* @return 数据库连接对象。

伊甸园的博客 2508

关于springboot整合log4j2的史上最全配置解释

说明:本文为作者原创,欢迎大家转载,不过记得声明出处哦~ 前言 日志管理在软件开发中必不可少,而Java开发中,log4j2以其简单易用的特点使其普及度非常高。但非常可惜的是log4j2的官方文档本人搜索大半天也没有找到(可能是本人英文水平实在太有限,各位可以尝试找一找,这里贴上官网地址:Apache Log4j2,找到了还请告诉我一声),另外虽然能在网上各大论坛找到一些开发者的笔记,但大都比...

tgy_csdn的博客 4397

springboot使用log4j2配置文件中引用pom变量

springbootlog4j2配置文件中引用pom变量 引入log4j2 首先需要引入log4j2,而spring boot默认使用的是logback,需要排除默认的log组件。logback性能不如log4j2优秀,所以我们换成log4j2。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifa

ibigboy 2947

log4j2 的使用

log4j2的使用

lixuanhong的博客 768

log4jlog4j2配置详解

文章目录1 log4jlog4j2配置详解1.1 pom.xml文件1.2 log4j.properties的引用1.3 log4j.properties的说明1.3.1 rootLogger文件1.3.2 输出目的地appender文件1.3.2.1 ConsoleAppender1.3.2.2 FileAppender1.3.2.3 DailyRollingFileAppender1.3.2...

上善若泪 6065

SpringBoot配置log4j2详解

一,背景 后台程序开发及上线时,一般都会用到Log信息打印及Log日志记录,开发时通过Log信息打印可以快速的定位问题所在,帮助我们快捷开发。程序上线后如遇到Bug或错误,此时则需要日志记录来查找发现问题所在。 Spring Boot 可以集成很多不同的日志系统,目前有关日志的开源代码很多,如log4j、sl4j和log4j2 其中最常用的Apache Log4j,而Log4j 2Log4j的升级版本,Log4j 2相对于Log4j 1.x 有了很多显著的改善。所以这篇博客就直接来说说Spring.

m0_61035392的博客 9940

SpringBoot整合Log4j2以及配置详解

文章目录标题SpringBoot整合Log4j2以及配置详解1.加入依赖2.在src.java.main.resources目录下创建log4j2.xml文件 log4j2.xml文件内容如下:3.配置参数详解1.日志级别2.输出源3. 格式4.PatternLayout自定义日志布局:4.log4j2配置详解Appenders节点Console节点用来定义输出到控制台的Appender.File节点用来定义输出到指定位置的文件的Appender.Loggers节点,常见的有两种:Root和Logger.5

OlderSheep编程达人 1万+

SpringBoot集成Log4j日志

SpringBoot集成Log4j日志1.Log4J概述2.引入依赖3.添加配置4.创建Log4J2.xml文件2.在项目中使用Log4J2日志 1.Log4J概述 ·Log4J是 Apache 下的一个开源项目,通过使用Log4J可以将日志信息打印到控制台、文件等,也可以控制每一条日志的输出格式,通过定义每一条日志信息的级别,更加细致地控制日志的生成过程。当然,我觉得这也是初学者,比较容易忽视的一个技术,但是在实际应用过程是非常有必要的。 2.引入依赖 在pom.xml中引入依赖 <

码出精彩 3162

springboot集成log4j2

springboot集成log4j2日志

Java_CSDN_W的博客 2401

SpringBoot集成log4j2

一、首先使用maven配置依赖包 <!-- springboot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId&...

三千炼心的博客 2890

springboot 集成Log4j2

一、Log4j2的介绍 Log4j是Apache下的一开源项目,通过使用Log4j可以将日志信息打印到控制台、文件等。我们也可以控制每一条日志的输出格式,通过定义每一条日志信息的级别能够更加细致地控制日志的生成过程。 在应用程序中添加日志记录有三个目的: 1、监视代码中变量的变化,周期性地记录到文件中,供其他应用进行统计分析 2、跟踪代码运行时的轨迹,作为日后审计的依据 3、担当集成开发...

GSON的博客 2617

Springboot使用Log4j2配置详解

Springboot使用Log4j2配置日志框架的对比和选择一、依赖配置(pom文件)二、log4j2.xml文件的配置三、Log4j2.xml配置文件核心概念解析1、全局Property2、Appender(**日志输出源**)3、日志记录的输出格式PatternLayout4、Loggers:日志器1、Root Logger2、 其他Logger四、异步日志引用参考: 日志框架的对比和选择 当前比较流行的日志框架有slf4j、log4j、logback、log4j2 日志接口(slf4j) slf

weixin_46589575的博客 5508

SpringBoot 集成 Log4j2 日志框架

log4j2配置及使用

zrhsmile的博客 1592

Log4j2——SpringBoot集成配置属性介绍

概述: 一般经常能听到日志组件有log4j, log4j2, logback,以及slf4j。 首先slf4j是一个简单的门面模式,意思就是说这只是一个日志标准,并不是日志系统的具体实现,slf4j只做两件事:提供日志接口和提供获取具体日志对象的方法。 至于log4j,已经在几年前停止更新了 logback是log4j的升级版,目前是springboot的默认日志组件 log4j2相对于...

大菠萝一号 3258

SpringBoot 集成log4j2

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33982670的博客 1483

log4j2的使用及配置详解

前言 众所周知,最近log4j被测出了漏洞,先是log4j2被测出了漏洞,漏洞影响范围为Log4j2.x <= 2.14.1;后来又被测出log4j1.X也有漏洞,范围为整个1.X版本。我们项目中,用的是log4j1.x。所以,结合以上两个漏洞,我们项目中只能把log4j升级到2.X版本,最终确定版本为2.17.0。 springboot集成log4j2日志 pom依赖: <!-- 项目中springboot版本使用的是2.3.1版本,此版本对应的spring-boot-starter

chen_lay的博客 1万+

Springboot整合slf4j搭配log4j2

一、啥是日志 其实像我们在前端用的alert、console.log(),后台就是System.out.print等都可以看作日志,可以通过这些方式打印出重要的信息 总而言之,日志是用来记录用户操作、系统运行状态等,是一个系统的重要组成部分。 二、选什么日志框架 首先列举一下日志门面和实现 日志门面(接口) 日志实现 JCL、SLF4J、Jboss logging、 L...

菜鸟逆袭之路 2910

Springboot日志打印、SpringBoot集成Log4j2源码)、异步日志

Springboot日志打印、SpringBoot集成Log4j2源码)、异步日志

weixin_49114503的博客 1382
上一篇: 全方位 解决使用mysql时存中文乱码的问题
下一篇: springboot的jar包 使用idea进行远程调试
Honins
博客等级 码龄10年 74粉丝 111原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值