问题描述:
1、Java项目logback日志以文本形式存入rabbitMq;
2、使用logstash 读取rabbitMq 数据,进行json转换时报错;
3、报错原因,原message数据中有json格式错误,如下:
{\"service_name\": \"api\", \"level\": \"INFO\", \"log_time\": \"2021-06-10 11:36:32,414\", \"thread\": \"http-nio-8081-exec-1\", \"host_ip\": \"192.168.0.12\", \"service_port\": \"8081\", \"span_id\": \"50c7dfeacd51420ba8b3c215899c91ca\", \"class\": \"c.w.web.controller.UserController:128\", \"log_msg\": \"传入参数 from: {\"endDate\":\"\",\"loginName\":\"23423\",\"pageNum\":1,\"pageSize\":10,\"roleName\":\"\",\"startDate\":\"\",\"userName\":\"\"}\" }
4、产生的错误数据是在 \"request\": \"传入参数 sysUserForm:之后这一段,位置固定,项目中打印日志大多数都是这样;
需求:
因此,我想采用 filter 把 包含, \"log_msg\"这段之后的数据进行截取单独赋值一个字段出来,截取之后的数据在进行json转换存索引,或者还有什么其他更好的方案。
期待您的回复,谢谢。