一种基于用户维度的动态日志跟踪方法及系统技术方案

技术编号:36690501 阅读:25 留言:0更新日期:2023-02-27 19:57
本发明专利技术涉及服务器日志跟踪技术领域,具体为一种基于用户维度的动态日志跟踪方法包括以下步骤:提供对于具体用户的日志规则设置;用户设置日志规则后,触发规则信息入Redis缓存;在分布式环境下,提供公共的拦截器;在环境变量中存储信息;有益效果为:本发明专利技术提出的基于用户维度的动态日志跟踪方法及系统同时兼容大型分布式系统与小型单体系统;另外,通过动态控制日志打印会大量降低磁盘IO同时端到端完成全量的日志跟踪打印;不需要开启整个系统的打印,避免大量日志打印造成磁盘IO过高,以及日志混杂的问题;特定用户的日志打印信息更加精准,避免因为大量日志造成排查困难的问题。题。题。

【技术实现步骤摘要】
一种基于用户维度的动态日志跟踪方法及系统


[0001]本专利技术涉及服务器日志跟踪
,具体为一种基于用户维度的动态日志跟踪方法及系统。

技术介绍

[0002]随着业务系统越来越复杂,尤其分布式环境的出现,系统架构越来越复杂,问题定位越来越复杂。系统伴随着用户数量的不断增加,用户行为操作频率越来越高,一旦出现业务问题,尤其针对具体用户行为的问题,经常需要进行问题复现、日志排查等操作。
[0003]现有技术中,系统进行日志排查有几种方式,下面是一些最常用的实现技术:
[0004]1.服务器日志打印:需要专业的运维人员登录系统环境进行日志采集,但是对于复杂网络环境对于运维人员技能要求高,而且分布式环境可能存在上百台服务器,需要耗费大量人力物力进行日志采集;然后需要开发人员从大量文件中不断排查用户问题。因此,只适合于小的单体系统,应用范围较窄。
[0005]2.构建日志采集+检索系统:业界一般通过ELK等方式进行日志系统的构建,然后提供统一的检索平台,可以根据时间等条件进行日志检索。但是线上环境一般只开启ERROR日志,能采集到的信息大部分是代码异常或者业务的报错异常,无法端到端跟踪整个异常请求的用户行为。但是一旦开启全量debug日志,会造成大量的磁盘占用,造成资源浪费并提升系统成本,大量的磁盘IO也会造成系统性能成倍下降。

技术实现思路

[0006]本专利技术的目的在于提供一种基于用户维度的动态日志跟踪方法及系统,以解决上述
技术介绍
中提出的问题。
[0007]为实现上述目的,本专利技术提供如下技术方案:一种基于用户维度的动态日志跟踪方法,该方法包括以下步骤:
[0008]提供对于具体用户的日志规则设置;
[0009]用户设置日志规则后,触发规则信息入Redis缓存;
[0010]在分布式环境下,提供公共的拦截器;
[0011]在环境变量中存储信息。
[0012]优选的,提供对于具体用户的日志规则设置,主要包括是否开发日志打印、日志打印级别、日志的匿名化设置。
[0013]优选的,用户设置日志规则后,触发规则信息入Redis缓存,缓存信息为key:用户id;value:用户日志规则,便于拦截器解析并获取日志信息。
[0014]优选的,在分布式环境下,提供公共的拦截器,通过用户id,去缓存Redis中获取用户日志打印规则,并设置到环境变量中。
[0015]优选的,在环境变量中存储信息后,提供统一的日志打印API,内部实现通过用户规则信息是否打印日志。
[0016]一种基于用户维度的动态日志跟踪系统,该系统由规则设置模块、规则缓存模块、规则拦截模块以及存储模块构成;
[0017]规则设置模块,用于提供对于具体用户的日志规则设置;
[0018]规则缓存模块,用于用户设置日志规则后,触发规则信息入Redis缓存;
[0019]规则拦截模块,用于在分布式环境下,提供公共的拦截器;
[0020]存储模块,用于在环境变量中存储信息。
[0021]优选的,所述规则设置模块中,提供对于具体用户的日志规则设置,主要包括是否开发日志打印、日志打印级别、日志的匿名化设置。
[0022]优选的,所述规则缓存模块中,用户设置日志规则后,触发规则信息入Redis缓存,缓存信息为key:用户id;value:用户日志规则,便于拦截器解析并获取日志信息。
[0023]优选的,所述规则拦截模块中,在分布式环境下,提供公共的拦截器,通过用户id,去缓存Redis中获取用户日志打印规则,并设置到环境变量中。
[0024]优选的,所述存储模块中,在环境变量中存储信息后,提供统一的日志打印API,内部实现通过用户规则信息是否打印日志。
[0025]与现有技术相比,本专利技术的有益效果是:
[0026]本专利技术提出的基于用户维度的动态日志跟踪方法及系统同时兼容大型分布式系统与小型单体系统;另外,通过动态控制日志打印会大量降低磁盘IO同时端到端完成全量的日志跟踪打印;不需要开启整个系统的打印,避免大量日志打印造成磁盘IO过高,以及日志混杂的问题;特定用户的日志打印信息更加精准,避免因为大量日志造成排查困难的问题。
附图说明
[0027]图1为本专利技术方法流程图。
具体实施方式
[0028]为了使本专利技术的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本专利技术实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本专利技术一部分实施例,而不是全部的实施例,仅仅用以解释本专利技术实施例,并不用于限定本专利技术实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0029]实施例一
[0030]请参阅图1,本专利技术提供一种技术方案:一种基于用户维度的动态日志跟踪方法,该方法包括以下步骤:
[0031]提供对于具体用户的日志规则设置;主要包括是否开发日志打印、日志打印级别、日志的匿名化设置;
[0032]用户设置日志规则后,触发规则信息入Redis缓存;用户设置日志规则后,触发规则信息入Redis缓存,缓存信息为key:用户id;value:用户日志规则,便于拦截器解析并获取日志信息;
[0033]在分布式环境下,提供公共的拦截器;在分布式环境下,提供公共的拦截器,通过
用户id,去缓存Redis中获取用户日志打印规则,并设置到环境变量中;
[0034]在环境变量中存储信息;在环境变量中存储信息后,提供统一的日志打印API,内部实现通过用户规则信息是否打印日志。
[0035]实施例二
[0036]一种基于用户维度的动态日志跟踪系统,该系统由规则设置模块、规则缓存模块、规则拦截模块以及存储模块构成;
[0037]规则设置模块,用于提供对于具体用户的日志规则设置;提供对于具体用户的日志规则设置,主要包括是否开发日志打印、日志打印级别、日志的匿名化设置;
[0038]规则缓存模块,用于用户设置日志规则后,触发规则信息入Redis缓存;用户设置日志规则后,触发规则信息入Redis缓存,缓存信息为key:用户id;value:用户日志规则,便于拦截器解析并获取日志信息;
[0039]规则拦截模块,用于在分布式环境下,提供公共的拦截器;在分布式环境下,提供公共的拦截器,通过用户id,去缓存Redis中获取用户日志打印规则,并设置到环境变量中;
[0040]存储模块,用于在环境变量中存储信息,在环境变量中存储信息后,提供统一的日志打印API,内部实现通过用户规则信息是否打印日志。
[0041]实施例三
[0042]一种基于用户维度的动态日志跟踪方法包括以下步骤:
[0043]1)系统某个部件出现用户业务异常。管理员进入操作台,设置用户A的日志打印开关为开启,打印级别为debug,同时开启模糊化规则为true开启。点击提交后本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于用户维度的动态日志跟踪方法,其特征在于,该方法包括以下步骤:提供对于具体用户的日志规则设置;用户设置日志规则后,触发规则信息入Redis缓存;在分布式环境下,提供公共的拦截器;在环境变量中存储信息。2.根据权利要求1所述的一种基于用户维度的动态日志跟踪方法,其特征在于:提供对于具体用户的日志规则设置,主要包括是否开发日志打印、日志打印级别、日志的匿名化设置。3.根据权利要求2所述的一种基于用户维度的动态日志跟踪方法,其特征在于:用户设置日志规则后,触发规则信息入Redis缓存,缓存信息为key:用户id;value:用户日志规则,便于拦截器解析并获取日志信息。4.根据权利要求1所述的一种基于用户维度的动态日志跟踪方法,其特征在于:在分布式环境下,提供公共的拦截器,通过用户id,去缓存Redis中获取用户日志打印规则,并设置到环境变量中。5.根据权利要求1所述的一种基于用户维度的动态日志跟踪方法,其特征在于:在环境变量中存储信息后,提供统一的日志打印API,内部实现通过用户规则信息是否打印日志。6.一种如上述权利要求1

5任意一项所述的基于用户维度的动态日志跟踪系统,其特征在于:该系统由规则设置模块...

【专利技术属性】
技术研发人员:薛小珊
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1