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中且数据有效期为一天,过期则删除
日志对象
范例代码
[电影][中国台湾][阳光普照]Redisson分布式锁