log4j定义了8个级别的log(除去OFF和ALL,可以说分为6个级别),优先级从高到低依次为:OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL。
- 日志存放路径
<property name="LOG_HOME" value="./logs/${APP_NAME}"/>
- 自定义包路径输出日志等级
<!--此配置优先级 appender>logger>root-->
<logger name="com.baoxian.dao" level="trace"/>
- 多环境配置,也可以在yml里面配置
<springProfile name="dev">
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</root>
</springProfile>
<springProfile name="test,prod">
<root level="TRACE">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</root>
</springProfile>
- 完整的xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<property name="LOG_HOME" value="./logs/${APP_NAME}"/>
<property name="FORMAT" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{25} - %msg%n"/>
<property name="RollingMaxHistory" value="10"/>
<property name="RollingFileNamePattern" value="${LOG_HOME}/%d{yyyy-MM-dd}.%i"/>
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台输出 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
</appender>
<!-- 生成INFO日志文件 -->
<appender name="INFO-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${RollingFileNamePattern}/info/%d{yyyy-MM-dd}.%i-info.log</FileNamePattern>
<!--日志文件最大的大小-->
<maxFileSize>500MB</maxFileSize>
<!--日志文件保留天数-->
<MaxHistory>${RollingMaxHistory}</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>${FORMAT}</pattern>
</encoder>
<!-- 打印日志级别 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 生成ERROR日志文件 -->
<appender name="ERROR-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!--日志文件输出的文件名-->
<FileNamePattern>${RollingFileNamePattern}/error/%d{yyyy-MM-dd}.%i-error.log</FileNamePattern>
<!--日志文件最大的大小-->
<maxFileSize>500MB</maxFileSize>
<!--日志文件保留天数-->
<MaxHistory>${RollingMaxHistory}</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
<pattern>${FORMAT}</pattern>
</encoder>
<!-- 打印日志级别 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--此配置优先级 appender>logger>root-->
<logger name="com.baoxian.dao" level="trace"/>
<springProfile name="dev">
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</root>
</springProfile>
<springProfile name="test,prod">
<root level="TRACE">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO-FILE"/>
<appender-ref ref="ERROR-FILE"/>
</root>
</springProfile>
<!-- 减少nacos日志 -->
<!-- <logger name="com.alibaba.nacos" level="ERROR"/>-->
</configuration>
网友评论