更新时间:2024-03-07 GMT+08:00
分享

日志处理

介绍SDK提供的日志配置方法以及日志格式。

日志级别配置

  • 日志组件

    SDK以SLF接口输出日志,默认使用logback输出日志,引入了logback-core-***.jar和logback-classic-***.jar这两个jar包,SLF会绑定到logback输出日志。

  • 日志配置示例

    这里以logback日志组件配置为例,相关配置参考如下,如果业务用的log4j2,也可以参考这里对应的logger和appender来配置。

    • 运行日志、调试日志
          <appender name="wgp_debug_log"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
               <file>../logs/graysdk/debug/debug.log</file>
               <encoder>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss:SSS}|%thread|%level|%logger{0}|:%msg%n</pattern>
               </encoder>
               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>../logs/graysdk/debug/debug-%d{yyyyMMddHH}.log
                    </fileNamePattern>
                    <maxHistory>24</maxHistory>
               </rollingPolicy>
               <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>100MB</maxFileSize>
               </timeBasedFileNamingAndTriggeringPolicy>
           </appender>
           <appender name="wgp_run_log"
               class="ch.qos.logback.core.rolling.RollingFileAppender">
               <file>../logs/graysdk/run/run.log</file>
               <encoder>
                    <pattern>%d{yyyy-MM-dd HH:mm:ss:SSS}|%level|%msg%n</pattern>
               </encoder>
               <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
                    <fileNamePattern>../logs/graysdk/run/run-%d{yyyyMMddHH}.log
                    </fileNamePattern>
                    <maxHistory>24</maxHistory>
               </rollingPolicy>
               <timeBasedFileNamingAndTriggeringPolicy
                    class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                    <maxFileSize>100MB</maxFileSize>
               </timeBasedFileNamingAndTriggeringPolicy>
           </appender>
           <logger name="com.huawei" additivity="false">
               <level value="INFO" />
               <appender-ref ref="debug_log" />
           </logger>
    • 性能统计日志

      logback.xml中定义性能统计日志

      <appender name="wgp_stat_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
              <file>../logs/graysdk/stat/stat.log</file>
              <encoder>
                  <pattern>%d{yyyy-MM-dd HH:mm:ss:SSS}|%level|%msg%n</pattern>
              </encoder>
              <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 
                  <fileNamePattern>../logs/graysdk/stat/stat-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
                  <maxFileSize>100MB</maxFileSize> 
                  <maxHistory>7</maxHistory>          <!-- log save days --> 
                  <totalSizeCap>10GB</totalSizeCap>   <!-- total log space size -->
              </rollingPolicy>
      </appender>
      <appender name="wgp_stat_service_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>../graysdk/stat/stat_service.log</file>
      <encoder>
      <pattern>%d{yyyy-MM-dd HH:mm:ss:SSS}|%msg%n</pattern>
      </encoder>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
      <fileNamePattern>../graysdk/stat/stat_service-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
      <maxFileSize>100MB</maxFileSize>
      <maxHistory>7</maxHistory>
      <totalSizeCap>10GB</totalSizeCap>
      </rollingPolicy>
      </appender>
          <logger name="WgpStatLogger" additivity="false">
              <level value="all" />
              <appender-ref ref="stat_log" />
      </logger>
      <logger name="WgpStatServiceLogger" additivity="false">
      <level value="all" />
      <appender-ref ref="wgp_stat_service_log" />
      </logger>
    • 告警日志

      logback.xml中定义告警日志

      <appender name="wgp_alarm_log" class="ch.qos.logback.core.rolling.RollingFileAppender">
      <file>../logs/graysdk/alarm/alarm.log</file>
      <encoder>
          <pattern>%d{yyyy-MM-dd HH:mm:ss:SSS}|%msg%n</pattern>
      </encoder>
      <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> 
          <fileNamePattern>../logs/graysdk/alarm/alarm-%d{yyyy-MM-dd}.%i.log.zip</fileNamePattern>
          <maxFileSize>100MB</maxFileSize> 
          <maxHistory>7</maxHistory>          <!-- log save days --> 
          <totalSizeCap>10GB</totalSizeCap>   <!-- total log space size -->
      </rollingPolicy>
      </appender>
      <logger name="WgpAlarmLogger" additivity="false">
      <level value="all" />
      <appender-ref ref="stat_log" />
      </logger>
  • 日志说明

    SDK默认会产生debug日志和run日志。

  • SDK初始化成功

    SDK初始化成功,表示已经从ETCD获取到了指定微服务名称的灰度配置,同时会在conf目录产生{serviceName}_grayrule.json的本地灰度规则备份文件。

分享:

    相关文档

    相关产品