脑洞:字节码加强 (1) 日志收集方案
背景 需求:java技术栈,要接入目前所有的项目到日志中心,需求看似比较简单 但是实施的过程中各种问题,项目所属不同部门,使用开发框架不同,人员能力水平不同, 方案选择: 方案1 各个项目接入logstash, 各类日志框架都有,log4j logback log4j2(apache.logging.log4j),十分混乱,而且开发人员需要引入jar,有可能会与现有的jar版本冲突,有一定的开发成本. 方案2 基于现有的文件日志,filebeat收集之后,再进行分析,发送到消息队列,然后转储到elastic search. 可是日志格式不统一,kao 方案3 基于字节码加强, 重写log4j logback log4j2中关于打印日志的方法,进行拦截. 加入我们自己的逻辑,将日志以可控的形式进行记录,将消息直接入mq,再由消费端进行消费(可以是logstash或者自研的处理程序),然后将此程序集成至基础docker镜像,JAVA_OPTS参数设定javaagent路径即可 实施: 字节码加强框架选择:asm bytebuddy jvm-sandbox,前两个坚决不用,原因:我不相信我自...
