在spring微服务架构中,服务经常打印一条日志:
第一个问题:这个5640是什么意思?
找一下打印日志的格式,在项目中没找到,但是在config项目中找到了一个。里面console的配置如下:
再看这个property,配置如下:
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
其中,%clr是用来打印彩色日志的。根据日志格式分析,最终的答案是【5640是PID】。
第二个问题:config项目中的logback配置在模块中也生效?
修改了下打印格式,发现config生效了,但是模块中没生效,再思考下,原来是在core依赖包中放了一个logback配置,修改此处的配置,发现生效了,所以答案是【不生效,日志格式在core包中定义】。
第三个问题:这条日志表示什么?
首先搜索类【ConfigClusterResolver】,搜索这条日志,找到了以下代码:
debug代码,发现返回到了这个类【AsyncResolver】中,代码如下:
分析代码,发现最终只是更新了集群endpoints的地址,频率是5分钟更新一次。