type
status
date
slug
summary
tags
category
icon
password
通过配置logback文件内容,当日志含有指定内容,并将日志内容实时推送给RabbitMQ中,再由单独的服务接收处理或呈现
一、前言
公司有对接物联感知设备场景需求,主要是通过协议服务(如SL651-2014水文协议)解析设备的上报的报文内容。
在这个过程中,需要现场调试设备,并通过协议服务的日志,排查现场安装问题。这时就需要登录服务器,反复查看后台日志来了解情况,这样的处理方式并不太友好,若服务器环境复杂(多台服务器,登录账号等),会给查看带来一定时间成本。
因此需要有一套方案,提取协议服务的日志,统一推送实现查看日志内容。
二、实现思路
协议服务的日志是由Logback日志框架控制,并记录在所在服务器本地目录中,若需要实现统一的查看方式,就需要把日志做出提取并推送到一个类似中转站地方。
项目使用的Logback日志框架和RabbitMQ消息队列,这两者正好可以进行整合。
因此,可以将日志输出到RabbitMQ队列中,通过单独的服务接收消息处理。
四、配置内容
如何安装RabbitMQ,这里不做介绍。可自行Google
4.1 logback配置内容
4.2 logback主要配置讲解
4.2.1 通过工程中的配置类,实现获取本地服务器内网ip
配置类如下
4.2.2 读取spring的rabbitmq的配置内容
注意: 当logback读取纯数字属性值时,常规配置可能会提示转换错误,因此,我们将其更改为${rabbitmq_port:-5672}
。
4.2.3 推送MQ的配置
4.2 logback日志接收处理
思路:日志内容存在sqllite3中且数据有效期为一天,过期则删除
日志对象
范例代码
- 作者:十十乙
- 链接:https://shishiyi.cc/article/af3f566c-6806-47fb-9a5e-1af93c8776be
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。