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

说明:本文为作者原创,欢迎大家转载,不过记得声明出处哦~

前言

日志管理在软件开发中必不可少,而Java开发中,log4j2以其简单易用的特点使其普及度非常高。但非常可惜的是log4j2的官方文档本人搜索大半天也没有找到(可能是本人英文水平实在太有限,各位可以尝试找一找,这里贴上官网地址:Apache Log4j2,找到了还请告诉我一声),另外虽然能在网上各大论坛找到一些开发者的笔记,但大都比较零散。本人参考了不下20篇开发者笔记和一些线上资料,整合出了一份比较全的log4j2配置,希望各位可以借此节省开发时间。

 

描述

这里以springboot基础框架来整合log4j2。

 

正文

pom.xml文件对log4j2的依赖配置

    <dependencies>
        <!-- something -->

        <!-- log配置 -->
        <!-- 排除springboot原有的log依赖 -->
        <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>
        <!-- 添加log4j2依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-log4j2</artifactId>
        </dependency>
    </dependencies>

log4j2.xml文件配置

log4j2在springboot中的配置只需要在项目的“src\main\resources\”目录下生成一个以log4j2开头的xml文件,springboot就能自动依据该文件的内容配置log4j2了。

<?xml version="1.0" encoding="UTF-8"?>

<!-- 日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE >ALL -->
<!-- status:设置log4j2本身的日志信息打印级别,可以不设置。当设置为info及以下级别时,在更改当前log4j2.xml文件后,自动检测功能发现xml文件有更改,将会打印更改日志,可以在console中看到。因此该status是log4j2.xml文件的日志设置。 -->
<!-- monitorInterval:设置间隔时间,单位为秒。Log4j2能够自动检测修改,并在monitorInterval设定的时间周期重新加载配置,无需重启应用 -->
<configuration status="info" monitorInterval="5">
    <!-- 自定义属性 -->
    <Properties>
        <!-- 缺省配置(用于开发环境),配置日志文件输出目录和动态参数。其他环境需要在VM参数中指定; -->
        <!-- “sys:”表示:如果VM参数中没指定这个变量值,则使用本文件中定义的缺省全局变量值 -->
        <Property name="instance">spring-boot-demo-log4j2</Property>
        <Property name="log.dir">D:\log4j2</Property>
    </Properties>
    
    <!-- 定义所有的appender -->
    <Appenders>
        <!--这个是输出控制台的配置-->
        <!-- name:指定Appender的名字 -->
        <!-- target:SYSTEM_OUT 或 SYSTEM_ERR,一般只设置默认:SYSTEM_OUT -->
        <Console name="Console" target="SYSTEM_OUT">
            <!--输出日志的格式-->
            <!-- PatternLayout:输出格式,不设置默认为:%m%n -->
            <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%level] [%l] - %message%n"/>
            
            <Filters>
                <ThresholdFilter level="info" onMatch="accept" onMismatch="deny"/>
            </Filters>
        </Console>
        
        <!-- info及以上级别的信息,每次大小超过size,则这size大小的日志会自动存入按年份-月份建立的文件夹下面并进行压缩,作为存档-->
        <!-- name:指定Appender的名字 -->
		<!-- fileName:指定输出日志的目的文件带全路径的文件名 -->
		<!-- filePattern:指定新建日志文件的名称格式 -->
        <RollingRandomAccessFile name="infoLog"
                                 fileName="${log.dir}/${instance}-info.log"
                                 filePattern="${log.dir}/%d{yyyy-MM}/${instance}-info-%d{yyyy-MM-dd}-%i.log.gz"
                                 append="true">
			
			<!-- PatternLayout:日志输出格式,不设置默认为:%m%n -->
			<!-- <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}][%thread][%level][%class][%line]:%message%n"/> -->
            <PatternLayout pattern="[%date{yyyy-MM-dd HH:mm:ss.SSS}] [%level] [%thread] [%l] - %message%n"/>
 
            <!-- 过滤器 -->
            <!-- 注意,这里要做一些特点说明: -->
            <!-- 等级大小关系为:OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE >ALL。 -->
            <!-- 在ThresholdFilter配置中,level属性是用来标识“匹配范围”的&#x
  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值