日志处理
介绍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>
- 性能统计日志
<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>
- 告警日志
<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>
- 运行日志、调试日志