背景
项目中有个节点健康检查扫描功能,每10秒扫描一次节点。
如果节点挂掉,会输出健康检查失败的日志。
测试环境,虽然配置了多个节点,但并没有都启动,所以在扫描的时候,会不断的出现报错,
对于排查日志来说,神烦。
但是节点挂掉的这个日志又不能不输出,否则正式环境要是真挂了,看不出来就很麻烦了。
所以最好的方案是这个健康检查失败的日志,能够单独输出,比如单独输出到指定文件,这样既不影响看日志,又保留了健康检查失败的日志。
解决方案
在application.yml里面,有logging配置,本来想着能不能直接在这里配出单独输出的效果,查了很多资料之后,表示没戏。
然后采用配置logback-spring.xml的方式来实现:
- 在application.yml同级目录新建logback-spring.xml
- 写入以下内容
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />
<appender name="healthCheck" class="ch.qos.logback.core.FileAppender">
<file>D:\fy\log\healthCheck.log</file>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender