欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Log4j2日志使用及XML配置说明

Log4j2日志使用及XML配置说明

2025/10/2 2:11:36 来源:https://blog.csdn.net/fyx_demo/article/details/141787446  浏览:    关键词:Log4j2日志使用及XML配置说明

一、日志输出格式说明

  1. yml配置输出级别及输出格式(没有xml配置时可以自行配置pattern规则):

    logging:level:com.it.*: debugpattern:console: "%d{yyyy-MM-dd HH:mm:ss} %clr(%-5level) [%magenta(${spring.application.name})] --- %cyan(%-30.30logger{0}) : %m%n"  
    
  2. pattern语法说明:

  • %d{yyyy-MM-dd HH:mm:ss}:日志输出时间的格式;
  • %clr() :日志输出字体颜色,日志级别不同,颜色也不同;
  • %cyan():日志输出字体颜色为青色;
  • %magenta() :日志输出字体颜色为紫色(品红色);
  • %t%thread :线程名称;
  • %-5level%-5 指占用五个字符,左对齐。level 指的是日志输出级别,分为 TRACE < DEBUG < INFO < WARN < ERROR < FATAL
  • %-30.30:总字符30个长度,超出截取,不够则空格补齐。点号前面加减号 - ,表示从前面截断。点号后面加减号 - ,表示从尾部截断;
  • logger{0} :执行的方法全类名,可以有一个整形参数,用于缩短日志记录器的包名。设置为0表示只输入logger最右边点符号之后的字符串;
  • %m%msg:日志输出的信息;
  • %n:末尾换行;

二、Log4j2的使用

  1. 引入依赖:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-log4j2</artifactId>
    </dependency>
    
  2. 排除默认的日志依赖 LogBack,主要是 spring-boot-starter-logging

    <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>
    
  3. 配置文件yaml修改:

    logging:config:  classpath:log4j2.xml
    
  4. 添加XML配置文件 log4j2.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration status="error" monitorInterval="10"><properties><property name="LOG_HOME">./logs</property><property name="PATTERN_LAYOUT_CONSOLE">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p: --- [%15.15t] %-40.40logger{39} : %m%n</property><property name="PATTERN_LAYOUT_CONSOLE_ROOT">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p --- [%15.15t] %-40.40logger{39} : %m%n</property><property name="PATTERN_LAYOUT">%d{yyyy-MM-dd HH:mm:ss.SSS} %5p --- [%15.15t] %-40.40logger{39} : %m%n</property><property name="SYSTEM_LEVEL">info</property></properties><appenders><Console name="Console" target="SYSTEM_OUT"><ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/><PatternLayout charset="utf-8"><MarkerPatternSelector defaultPattern="${PATTERN_LAYOUT_CONSOLE_ROOT}"><PatternMatch key="UTIL" pattern="${PATTERN_LAYOUT_CONSOLE}"/></MarkerPatternSelector></PatternLayout></Console><RollingFile name="RollingFileSystem" fileName="${LOG_HOME}/system.log"filePattern="${LOG_HOME}/$${date:yyyy-MM}/$${date:yyyy-MM-dd}/system/system-%d{yyyy-MM-dd}-%i.log.gz"bufferSize="4096" immediateFlush="true" bufferedIO="true" append="true"><Filters><MarkerFilter marker="MESSAGE" onMatch="DENY" onMismatch="NEUTRAL"/><MarkerFilter marker="TRACE" onMatch="DENY" onMismatch="NEUTRAL"/><ThresholdFilter level="${SYSTEM_LEVEL}" onMatch="ACCEPT" onMismatch="DENY"/></Filters><PatternLayout charset="utf-8"><MarkerPatternSelector defaultPattern="${PATTERN_LAYOUT_CONSOLE_ROOT}"><PatternMatch key="UTIL" pattern="${PATTERN_LAYOUT}"/></MarkerPatternSelector></PatternLayout><Policies><CronTriggeringPolicy schedule="0 0 0 * * ?"/><TimeBasedTriggeringPolicy/><SizeBasedTriggeringPolicy size="100MB"/></Policies><DefaultRolloverStrategy max="50"><Delete basePath="${LOG_HOME}" testMode="false" maxDepth="5"><IfFileName glob="*/*/system/system*.log.gz"><IfLastModified age="30d"><IfAny><IfAccumulatedFileSize exceeds="5GB"/><IfAccumulatedFileCount exceeds="1000"/></IfAny></IfLastModified></IfFileName></Delete></DefaultRolloverStrategy></RollingFile></appenders><loggers><root level="${SYSTEM_LEVEL}"><appender-ref ref="Console"/><appender-ref ref="RollingFileSystem"/></root><Logger name="com" level="${SYSTEM_LEVEL}" additivity="false"><appender-ref ref="RollingFileSystem"/></Logger><Logger name="com.it.mapper" level="DEBUG" additivity="false"><appender-ref ref="RollingFileSystem"/></Logger></loggers>
    </configuration>
    

三、XML配置标签说明:

  • configuration:父标签,包裹所有元素;
    • status:配置文件的日志检查级别,符合的时候会触发日志输出;
    • monitorInterval:间隔时间,每隔一段时间检查一次配置文件是否更改;
  • properties:用于声明变量,一般为声明日志存储位置,日志输出格式、日志级别等。
  • appenders:声明日志输出方式、日志位置等;
    • Console:控制台输出,target 属性为设置输出方式,SYSTEM_OUTSYSTEM_ERR ,一般设置默认 SYSTEM_OUT
      • PatternLayout:日志输出格式,引用自定义的properties变量即可;
    • RollingFile:文件滚动记录日志,可以配置限制日志文件大小和保存策略;
      • Filters:声明一组顺序执行的过滤器,依次执行,ACCEPT 表示允许写入,DENY 表示拒绝写入,NEUTRAL 表示中立,即放行到下一个过滤器;
      • MarkerFilter:声明一个标记过滤器,根据日志的标记信息判断日志的写入;
      • ThresholdFilter:声明一个阈值过滤器,根据日志级别进行判读写入;
      • Policies:指定新建日志文件的时机,日志打包策略,如定时打包、存储大小等;
      • DefaultRolloverStrategy:声明日志文件的删除策略;
  • loggers:声明日志使用哪些appender进行输出;
    • root:设置项目根目录的日志输出方式,具体使用哪个 appender
    • logger:设置具体的包的日志,可以控制某些依赖的日志;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词