logback日志配置样例

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&amp;method=%method&amp;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&amp;method=%method&amp;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" />  &lt;!&ndash; 调试用 &ndash;&gt;-->
      </root>
  </configuration>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容