[发明专利]一种java环境中动态获取日志实例的方法及系统在审
申请号: | 201710386662.0 | 申请日: | 2017-05-26 |
公开(公告)号: | CN107329880A | 公开(公告)日: | 2017-11-07 |
发明(设计)人: | 支猛;陈少杰;张文明 | 申请(专利权)人: | 武汉斗鱼网络科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/30 |
代理公司: | 北京路浩知识产权代理有限公司11002 | 代理人: | 王莹 |
地址: | 430000 湖北省武汉市武汉东湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 环境 动态 获取 日志 实例 方法 系统 | ||
技术领域
本发明涉及软件工程技术领域,更具体地,涉及一种java环境中动态获取日志实例的方法及系统。
背景技术
系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。用户可以通过它来检查错误发生的原因,或者寻找受到攻击时攻击者留下的痕迹。系统日志包括系统日志、应用程序日志和安全日志。
当线上项目出现问题时,程序员必须能够快速高效的找到问题的根源并解决。最有效的方式是通过分析系统日志。如果系统日志全面,会为程序员排查解决线上问题带来绝大的帮助,要想保证系统日志全面,就必须打印出所有的系统或业务日志。
然而,现有技术中的日志打印技术会带来另一个问题,那就是日志量的暴涨,过多的日志除了能够帮助我们解决问题外,同时会直接造成系统性能下降,极端情况下,甚至导致系统宕机。现有技术通过将日志动态获取的逻辑放到一个通用的项目中,其它项目如果要接入该功能,必须将这个通用的项目作为自己的父项目,这就在一定程度上给开发者造成很多不便。
发明内容
本发明为克服上述问题或者至少部分地解决上述问题,提供一种java环境中动态获取日志实例的方法及系统。
根据本发明的一个方面,提供一种java环境中动态获取日志实例的方法,包括:
步骤1,将不同类型日志框架中日志实例获取方法定义在日志实例获取接口类中;
步骤2,基于获取的目标应用当前日志框架类型,调用所述日志实例获取接口类中对应的日志实例获取方法,获取当前日志框架中的日志实例。
进一步,所述步骤2前还包括:
步骤21,在目标应用的启动脚本中动态添加所述日志实例获取接口类;
步骤22,不再动态获取日志实例时,从启动脚本中删除所述日志实例获取接口类。
进一步,所述步骤21进一步包括:
通过在目标应用中添加MANIFEST.MF文件,实例化所述日志实例获取接口类;将所述日志实例获取接口类打包为jar包,将所述目标应用和所述jar包相关联。
进一步,所述步骤2中目标应用当前日志框架类型通过以下步骤获取:基于获取的当前绑定的静态日志实例绑定类,获取当前日志框架类型。
进一步,所述获取当前日志框架中的日志实例的步骤进一步包括:
基于当前日志框架类型的不同,分别获取粗粒度日志实例和/或细粒度日志实例。
进一步,所述基于获取的当前绑定的静态日志实例绑定类,获取当前日志框架类型的步骤进一步包括:
调用获取的当前绑定的静态日志实例绑定类中获取日志实例工厂方法,基于所述日志实例工厂方法获取日志实例工厂接口实现类的类名,基于所述日志实例工厂接口实现类的类名获取当前日志框架类型。
进一步,所述步骤2中当前绑定的静态日志实例绑定类通过以下步骤获取:
利用简单日志门面获取前类路径下所有org.slf4j.impl.StaticLoggerBinder类,依赖Java的类加载顺序获取当前绑定的静态日志实例绑定类。
进一步,所述基于当前日志框架类型的不同,分别获取粗粒度日志实例和/或细粒度日志实例的步骤进一步包括:
若当前日志框架为Log4j2日志框架,利用当前日志框架的接口获取当前日志框架配置文件中的粗粒度日志实例;若当前日志框架为Log4j或Logback日志框架,通过XML解析技术解析配置日志XML文件,获取粗粒度日志实例;
利用当前日志框架中的日志实例获取方法,获取当前日志框架中的细粒度日志实例。
根据本发明另一个方面,提供一种java环境中动态获取日志实例的系统,包括:
定义模块,用于将不同类型日志框架中日志实例获取方法定义在日志实例获取接口类中;
获取模块,用于基于获取的目标应用当前日志框架类型,调用所述日志实例获取接口类中对应的日志实例获取方法,获取当前日志框架中的日志实例。
根据本发明另一个方面,提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如上述方案中任一所述的方法。
本申请提出一种java环境中动态获取日志实例的方法及系统,本发明所述方案具有如下有益效果:1、能够无侵入的动态获取java环境中目标程序的日志实例;2、支持多种主流日志框架的动态获取。
附图说明
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于武汉斗鱼网络科技有限公司,未经武汉斗鱼网络科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710386662.0/2.html,转载请声明来源钻瓜专利网。
- 上一篇:机票业务监控执行系统及方法
- 下一篇:可变阀门升程装置