Log4j2日志框架

Log4j2日志框架

概述

Log4j2组成部分

(1)日志信息的优先级:从低到高TRACE < DEBUG < INFO < WARN < ERROR < FATAL

日志信息 描述
TRACE 追踪,是最低的日志级别,相当于追踪程序的执行
DEBUG 调试,一般在开发中,将其设置为最低的日志级别
INFO 信息,输出重要的信息,使用较多
WARN 警告,输出警告信息
ERROR 输出错误信息
FATAL 严重错误

这些级别分别用来指定这条日志信息的重要程度,级别高的会自动屏蔽级别低的日志。

(2)日志信息的输出目的地:日志信息的输出目的地指定了日志将打印在控制台还是文件中

(3)日志信息的输出格式:该格式控制了日志信息的显示内容

使用步骤

1、导入Log4j2依赖

<dependency>
    <groupId>org.apache.logging.log4jgroupId>
    <artifactId>log4j-coreartifactId>
    <version>2.20.0version>
dependency>
<dependency>
    <groupId>org.apache.logging.log4jgroupId>
    <artifactId>log4j-slf4j2-implartifactId>
    <version>2.20.0version>
dependency>

2、加入日志配置文件

在类的根路径下提供log4j2.xml配置文件。





<configuration status="WARN" monitorInterval="30">
    
    <appenders>
        
        <console name="Console" target="SYSTEM_OUT">
            
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
        console>
        
        <File name="log" fileName="logs/test.log" append="false">
            <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %class{36} %L %M - %msg%xEx%n"/>
        File>
        
        <RollingFile name="RollingFileInfo" fileName="logs/info.log"
                     filePattern="logs/$${date:yyyy-MM}/info-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            Policies>

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

            <filters>
                
                <ThresholdFilter level="error" onMatch="DENY" onMismatch="NEUTRAL"/>
                
                <ThresholdFilter level="warn" onMatch="ACCEPT" onMismatch="DENY"/>
            filters>
        RollingFile>
        <RollingFile name="RollingFileError" fileName="logs/error.log"
                     filePattern="logs/$${date:yyyy-MM}/error-%d{yyyy-MM-dd}-%i.log">
            <PatternLayout pattern="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%p] - %l - %m%n"/>
            <Policies>
                <TimeBasedTriggeringPolicy/>
                <SizeBasedTriggeringPolicy size="100 MB"/>
            Policies>
            <ThresholdFilter level="error" onMatch="ACCEPT" onMismatch="DENY"/>
        RollingFile>
    appenders>
    
    <loggers>
        <root level="ALL">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileWarn"/>
            <appender-ref ref="RollingFileError"/>
        root>

        
        <logger name="org.springframework" level="INFO" additivity="false">
            <appender-ref ref="Console"/>
            <appender-ref ref="RollingFileInfo"/>
        logger>
        <logger name="org.mybatis" level="INFO">logger>
    loggers>
configuration>

3、测试

//测试
logger.info("测试成功");
/*[2023-06-22 10:18:36:763] [INFO] - com.louis.TestUser.test(TestUser.java:27) - 测试成功*/

你可能感兴趣的:(Spring,log4j,单元测试)