logback日志输出样例
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="10 seconds">
<!-- log_path_base可设置到环境变量或jvm参数里 -->
<springProperty scope="context" name="logging.path" source="log_path_base" />
<property name="APP_NAME" value="cms" />
<property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd}T%d{HH:mm:ss.SSS} [%level] [%class{5}:%line] [thread=%thread&method=%method&traceId=%X{traceId}] [%X{bizParam}] -- %msg %n" />
<property name="FILE_LOG_PATTERN" value="%d{yyyy-MM-dd}T%d{HH:mm:ss.SSS} [%level] [%class{5}:%line] [thread=%thread&method=%method&traceId=%X{traceId}] [%X{bizParam}] -- %msg %n" />
<!-- 应用日志 -->
<appender name="APPFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<file>${logging.path}/app/${APP_NAME}-app.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${logging.path}/app/${APP_NAME}-app-%d{yyyy-MM-dd_HH}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 500MB, keep 7 days worth of history, but at most 20GB -->
<maxFileSize>500MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter> -->
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<!-- <prudent>true</prudent> -->
</appender>
<!-- 应用安全日志 -->
<appender name="AUDITFILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>${FILE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<file>${logging.path}/audit/${APP_NAME}-audit.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${logging.path}/audit/${APP_NAME}-audit-%d{yyyy-MM-dd_HH}.%i.log.zip</fileNamePattern>
<!-- each file should be at most 500MB, keep 7 days worth of history, but at most 20GB -->
<maxFileSize>500MB</maxFileSize>
<maxHistory>7</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter> -->
<!-- Safely log to the same file from multiple JVMs. Degrades performance! -->
<!-- <prudent>true</prudent> -->
</appender>
<!-- 控制台日志 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoder defaults to ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- Only log level WARN and above -->
<!-- <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter> -->
</appender>
<!-- 指定产生安全日志的包(demo) -->
<!-- <logger name="com.pab.halo.framework.example.client.controller" level="info" additivity="false">
<appender-ref ref="AUDITFILE" />
</logger> -->
<!-- 异步日志 -->
<appender name="APP_FILE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 配置这个将保证日志不丢失 -->
<discardingThreshold>0</discardingThreshold>
<queueSize>1000</queueSize>
<includeCallerData>true</includeCallerData> <!-- Copy caller data to event -->
<appender-ref ref="APPFILE" />
</appender>
<!-- 异步日志 -->
<appender name="AUDIT_FILE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 配置这个将保证日志不丢失 -->
<discardingThreshold>0</discardingThreshold>
<queueSize>1000</queueSize>
<includeCallerData>true</includeCallerData> <!-- Copy caller data to event -->
<appender-ref ref="AUDITFILE" />
</appender>
<!-- 指定日志输出相应级别并且输出到相应appender,注意要加additivity,否则也会输出到root. -->
<logger name="cfgCenter" level="ALL" additivity="false">
<appender-ref ref="AUDIT_FILE_ASYNC"/>
</logger>
<root level="INFO">
<appender-ref ref="APP_FILE_ASYNC" />
<!-- <appender-ref ref="STDOUT" /> <!– 调试用 –>-->
</root>
</configuration>
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。