Skip to content

Instantly share code, notes, and snippets.

@guogang1984
Last active June 25, 2024 06:34
Show Gist options
  • Select an option

  • Save guogang1984/6abbeda7a53dac0b3ebe098c93dfaf65 to your computer and use it in GitHub Desktop.

Select an option

Save guogang1984/6abbeda7a53dac0b3ebe098c93dfaf65 to your computer and use it in GitHub Desktop.
log
# 在这里加上 logging.config 能指定 logback 的配置文件位置
# 如果 加上 file: 可以指定jar包外根目录的相对文件路径
logging:
config: file:logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- log4j2官方文档: https://logging.apache.org/log4j/2.x/index.html -->
<!-- 日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL -->
<!-- Configuration后面的status,这个用于设置log4j2自身内部的信息输出,可以不设置,当设置成trace时,你会看到log4j2内部各种详细输出 -->
<!-- monitorInterval:Log4j能够自动检测修改配置 文件和重新配置本身,设置间隔秒数 -->
<Configuration status="WARN" monitorInterval="10" packages = "com.msf" >
<!-- log4j2日志格式化输出参考: org.apache.logging.log4j.core.pattern.PatternConverter -->
<!-- 这是一个接口, 具体格式化在子类实现, 如: %c / %logger 的具体实现在: org.apache.logging.log4j.core.pattern.LoggerPatternConverter -->
<!-- 如: %clr / %color 的具体实现在: org.springframework.boot.logging.log4j2.ColorConverter -->
<!-- @ConverterKeys({ "c", "logger" }) 表示使用的格式化字符 -->
<Properties>
<!-- ==============================================公共配置============================================== -->
<Property name="LOG_EXCEPTION_CONVERSION_WORD">%xwEx</Property>
<Property name="LOG_LEVEL_PATTERN">%5p</Property>
<!-- 日期格式化 -->
<Property name="LOG_DATEFORMAT_PATTERN">yyyy-MM-dd HH:mm:ss.SSS</Property>
<!-- 控制台日志输出格式 -->
<Property name="CONSOLE_LOG_PATTERN">%highlight{%d{${sys:LOG_DATEFORMAT_PATTERN}}} %clr{[${sys:LOG_LEVEL_PATTERN}]} %clr{%pid}{magenta} %clr{---}{faint} %clr{[%t]}{green} %clr{%c:%L}{cyan} %clr{:}{faint} %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
<!-- 文件日志输出格式 -->
<Property name="FILE_LOG_PATTERN">%d{${sys:LOG_DATEFORMAT_PATTERN}} ${sys:LOG_LEVEL_PATTERN} %pid --- [%t] %c:%L : %m%n${sys:LOG_EXCEPTION_CONVERSION_WORD}</Property>
<!-- 定义日志存储的路径,不要配置相对路径 -->
<Property name="FILE_PATH" value="./logs/msf-app-provider/" />
<Property name="FILE_NAME" value="all" />
</Properties>
<appenders>
<!-- 输出到控制台, target属性一般为SYSTEM_OUT,也可以是 SYSTEM_ERR, -->
<Console name="Console" target="SYSTEM_OUT">
<!--配置日志信息的格式 -->
<PatternLayout pattern="${CONSOLE_LOG_PATTERN}"/>
<Filters>
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="debug" onMatch="ACCEPT" onMismatch="DENY"/>
<ThreadFilter threadName="JetCacheHeavyIOExecutor" onMatch="DENY" onMismatch="ACCEPT" level="DEBUG"/>
</Filters>
</Console>
<RollingFile name="RollingFileInfo" fileName="${FILE_PATH}/${FILE_NAME}.log" filePattern="${FILE_PATH}/${FILE_NAME}.log.%d{yyyyMMdd}.%i.gz" immediateFlush="true">
<Filters>
<!--控制台只输出level及以上级别的信息(onMatch),其他的直接拒绝(onMismatch)-->
<ThresholdFilter level="debug" onMatch="NEUTRAL" onMismatch="DENY"/>
<ThreadFilter threadName="JetCacheHeavyIOExecutor" onMatch="DENY" onMismatch="ACCEPT" level="DEBUG"/>
</Filters>
<PatternLayout pattern="${FILE_LOG_PATTERN}"/>
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
<SizeBasedTriggeringPolicy size="100MB"/>
</Policies>
<!-- DefaultRolloverStrategy属性如不设置,最大Rollover次数 -->
<DefaultRolloverStrategy max="15">
<Delete basePath="${FILE_PATH}" maxDepth="2" >
<IfFileName glob="*.gz" />
<!-- 180天 -->
<IfLastModified age="P180D" />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
<!-- <WarningSignal name="warningSignalAppender"/> -->
</appenders>
<!--Logger节点用来单独指定日志的形式,比如要为指定包下的class指定不同的日志级别等。-->
<!--然后定义loggers,只有定义了logger并引入的appender,appender才会生效-->
<loggers>
<!-- &lt;!&ndash; 将业务dao接口所在的包填写进去,并用在控制台和文件中输出 此处配置的是mybatis的输出 level记得设置为debug &ndash;&gt;-->
<!-- <logger name="com.msf.member" level="debug"-->
<!-- additivity="false">-->
<!-- <AppenderRef ref="Console" />-->
<!-- &lt;!&ndash; 将SQL语句输出到name为RollingFileInfo 的文件中 &ndash;&gt;-->
<!-- <AppenderRef ref="RollingFileInfo" />-->
<!-- </logger>-->
<!--disruptor异步日志-->
<AsyncLogger name="com.msf" level="debug" includeLocation="false" additivity="false">
<appender-ref ref="Console" />
<appender-ref ref="RollingFileInfo"/>
<!-- <appender-ref ref="warningSignalAppender"/> -->
</AsyncLogger>
<root level="info">
<appender-ref ref="Console"/>
<appender-ref ref="RollingFileInfo"/>
<!-- <appender-ref ref="warningSignalAppender"/> -->
</root>
</loggers>
</Configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!-- https://logback.qos.ch/manual/configuration.html -->
<configuration scan="true" scanPeriod="10 seconds" debug="false">
<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([%t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ${LOG_LEVEL_PATTERN:-%5p} ${PID:- } --- [%t] %-40.40logger{39} : %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!-- 定义日志存储的路径,不要配置相对路径 -->
<property name="FILE_PATH" value="./logs/xxxxxx/" />
<property name="FILE_NAME" value="all" />
<!-- 控制台日志 -->
<appender name="rootFile" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>utf8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>TRACE</level>
</filter>
</appender>
<!-- 业务日志 样例一 business.log 注意下面两处修改-->
<appender name="RollingFileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${FILE_PATH}/info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${FILE_PATH}/${FILE_NAME}.log.%d{yyyyMMdd}.%i.gz</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>180</maxHistory>
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG</level>
</filter>
</appender>
<appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<appender-ref ref="RollingFileInfo"/>
<queueSize>500</queueSize>
<discardingThreshold>0</discardingThreshold>
</appender>
<!-- 自行扩展 appender 开始 -->
<!-- 自行扩展 appender 结束 -->
<logger name="org.springframework" level="info" additivity="false" />
<!-- 自行扩展 logger 开始 -->
<logger name="com.msf" level="debug" additivity="false" >
<appender-ref ref="rootFile" />
<appender-ref ref="RollingFileInfo" />
</logger>
<!-- 自行扩展 logger 结束 -->
<root level="info">
<appender-ref ref="rootFile" />
<appender-ref ref="RollingFileInfo" />
</root>
</configuration>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment