首先,先介绍下使用场景,大部分公司基本都会配置日志统一收集平台,如:ELK,来统一监控些异常日志,但是一些如果及时性的需求满足不了,会有延时,不能像我们开发的时候在控制台实时监控日志。spring boot admin其实就是利用了spring boot actuator暴露的的/logfile接口来实现的并且做到了实时更新log和下载功能,如下图:
其实配置挺简单的,只要配置日志文件路径就行,但有个比较坑的地方是,不支持正则匹配,比如:我按功能拆分了多个log、按时间参数选择log都做不到,后面想办法重写这块,今天先简单解决下
- application.yml增加如下配置
- logging:
- file: logs/console.log
- 自定义logback.xml,解决的办法是:每天实时一个新的console.log,然后按照时间策略归档生成按日期结尾的历史log,按照64M文件拆分,每30天清除
顺便看了下它的实时刷新,实际是轮询/logfile接口,第一次会全量下载,后面是在请求头中记录上一次偏移的字节数,服务器根据偏移字节数来返回增量数据