日志查看地址:http://192.168.168.207:31310/app/home#/
1 背景
传统日志分散在服务器docker容器中,无法查询历史日志,也难以集中检索和分析。
日志量庞大时,人工排查效率低,缺乏实时监控能力。
缺乏统一的日志格式和存储方案,导致运维成本高。
2 配置步骤
2.1 环境准备
1.framework、dme-sdk、mbm-mom-sdk 升级到 2.1.0
<mbm.mom.framework.version>2.1.0-SNAPSHOT</mbm.mom.framework.version>
<mom.sdk.api.version>2.1.0-SNAPSHOT</mom.sdk.api.version>
<dme.sdk.verion>2.1.0-SNAPSHOT</dme.sdk.verion>2.logback-spring.xml 配置 springProperty、appender、root
<springProperty scope="context" name="redis.applicationName" source="spring.application.name" defaultValue="applicationName"/>
<springProperty scope="context" name="redis.env" source="apilog.env" defaultValue="loc"/>
...
<appender name="redis_log" class="com.sie.mbm.mom.framework.apilog.step.common.RedisAppender">
<env>${redis.env}</env>
<applicationName>${redis.applicationName}</applicationName>
</appender>
...
<root level="INFO">
<appender-ref ref="redis_log"/>
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
</root>
3.pom 引入framework-apilog
<dependency>
<groupId>com.sie.mbm.mom</groupId>
<artifactId>framework-apilog</artifactId>
</dependency>2.2 日志配置
2.2.1 开关
yml可以配置日志启用开关,注意:默认不打印返回值
apilog:
interfaceFlag: true # 默认是true,是否打印接口日志,这个是总开关
restApiFlag: true # 默认是true,是否打印restTemplate日志,例如请求华为接口
feignFlag: true # 默认是true,是否打印openfeign调用日志
responseFlag: false # 默认是false,是否打印返回值
inFlag: false # 默认是false,是否打印接口进入的日志,可用于排查接口超时 2.2.2 忽略日志的注解
@LogIgnore 这个注解下的不打印接口日志
2.2.3 异步线程
如果异步线程需要链路日志,需要在线程池加入任务 MdcAwareRunnable
@Configuration
@EnableAsync
public class TraceThreadPoolConfig {
@Bean("traceTaskExecutor")
public ThreadPoolTaskExecutor traceTaskExecutor() {
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setMaxPoolSize(150);
executor.setQueueCapacity(100000);
executor.setKeepAliveSeconds(60);
executor.setThreadNamePrefix("sie-traceTaskExecutor-");
// 记录traceId
executor.setTaskDecorator(MdcAwareRunnable::new);
executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
executor.initialize();
return executor;
}
}
3、日志收集
3.1 收集原理

3.2 日志分类



3.2.1 接口日志

可以按需添加筛选条件,例如过滤smt的日志;右上角可以筛选时间

3.2.2 全部日志
message 日志是业务平常打印的日志

3.2.3 切换环境