log4j2 在springBoot中的布置与使用

#log4j2 项目中使用@TOC

log4j2 Spring Boot项目中布置以及使用(使用mvn依赖)

log4j2的日志能力较强,别的不多BB,直接干货

我使用的是 Spring Boot Log4j 2 Starter 版本中的 2.2.2.RELEASE 版本号

首先,在spring Boot项目中移出spring Boot框架自己的log4j日志系统或者框架

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-logging</artifactId>
            </exclusion>
        </exclusions>
</dependency>

maven中的 exclusions 属性,在此不多说,不清楚的可看链接!!!
将spring Boot 自带的log4g 移出之后,将选定的版本: Spring Boot Log4j 2 Starter 版本中的 2.2.2.RELEASE 版本 的maven依赖引入到项目中

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-log4j2</artifactId>
        <version>2.2.2.RELEASE</version>
    </dependency>

在项目的resource 文件中,配置log4j2.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<!-- ${sys:user.home} 系统用户路径 可以替换成你想要日志打印的路径 -->
<configuration status="INFO" monitorInterval="10">
<!--先定义所有的appender-->
<appenders>
    <!--这个输出控制台的配置; name 随便起,就是一个标记 target 打印的形式,默认的-->
    <console name="Console" target="SYSTEM_OUT">
        <!--输出日志的格式-->
        <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
    </console>
    <!--    fileName 指定log文件输出位置  append:true 追加  false 不追加并且清空 -->
    <!-- 这个File 一般是纯粹测试时使用,一般用 console  或者 RollingFile  较多 -->
    <File name="ToFile" fileName=" ${sys:user.home}/sms-log4j-test.log" append="true">
        <PatternLayout pattern="%d{HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
    </File>

    <RollingFile name="fileInfo" fileName="  ${sys:user.home}/info.log"
                 filePattern=" $ ${sys:user.home}/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
        <!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
        <ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        <Policies>
        	<!-- TimeBasedTriggeringPolicy 这个属性是,根据时间进行日志的分割,interval="1" modulate="true" -->
        	 <!-- 按时间分割日志:需要 filePattern 的配置的日期格式以及 interval的属性配置共同生效-->
            <TimeBasedTriggeringPolicy/>
            <!-- SizeBasedTriggeringPolicy 配置日志文件大小,如果日志文件的大小超过 size的配置,就会分割,否则就会每天一个日志文件 -->
            <SizeBasedTriggeringPolicy size="500 MB"/>
        </Policies>
        <!--  DefaultRolloverStrategy  表示同一个文件下,最多有几个log日志文件 默认是7个,这个随便设置 -->
        <DefaultRolloverStrategy max="20"/>
    </RollingFile>

    <RollingFile name="fileWarn" fileName=" ${sys:user.home}/warn.log"
                 filePattern=" ${sys:user.home}/$${date:yyyy-MM}/warn-%d{yyyy-MM-dd}-%i.log">
        <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        <Policies>
            <TimeBasedTriggeringPolicy/>
            <SizeBasedTriggeringPolicy size="500 MB"/>
        </Policies>
        <DefaultRolloverStrategy max="20"/>
    </RollingFile>

    <RollingFile name="fileError" fileName=" ${sys:user.home}/error.log"
                 filePattern=" ${sys:user.home}/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
        <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
        <PatternLayout pattern="[%d{HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        <Policies>
            <TimeBasedTriggeringPolicy/>
            <SizeBasedTriggeringPolicy size="500 MB"/>
        </Policies>
        <DefaultRolloverStrategy max="20"/>
    </RollingFile>


</appenders>
<loggers>
    <!--过滤掉spring和mybatis的一些无用的DEBUG信息 或者设置成更高的日志级别-->
    <logger name="org.springframework" level="INFO"></logger>
    <logger name="org.mybatis" level="INFO"></logger>
    <root level="INFO">
    <!-- 如果不想使用哪个日志打印,直接注释掉或者删除即可-->
    <appender-ref ref="console"/>ToFile
    <appender-ref ref="ToFile"/>
    <appender-ref ref="fileInfo"/>
    <appender-ref ref="fileWarn"/>
    <appender-ref ref="fileError"/>
    </root>
</loggers>

这篇文章是站在各位大佬的肩膀上总结出来了
大佬一
大佬二
大佬三

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值