一种日志记录方法和系统技术方案

技术编号:28320552 阅读:23 留言:0更新日期:2021-05-04 13:00
本发明专利技术公开了一种日志记录方法和系统,方法包括:初始化日志消息队列,扫描日志数据存储组织和源码映射地图;响应于从日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;响应于从日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与源码映射地图相对应的代码路径记录;响应于接收到查询日志请求,而从格式化数据表项和源码映射地图读取数据记录项以格式化和展示。本发明专利技术能够降低日志记录的资源占用,并不干涉系统正常业务的正常运行。

【技术实现步骤摘要】
一种日志记录方法和系统
本专利技术涉及日志领域,更具体地,特别是指一种日志记录方法和系统。
技术介绍
日志记录是软件系统中最常用的调试及问题跟踪排查手段。日志记录本身不参与系统功能的实现,相反对运行效率较为敏感的场景可能会破坏功能的正常运行。优秀的日志记录系统在设计时应该尽可能降低对正常业务的影响,避免由于日志的引入导致系统执行环境的改变。例如存储系统中对IO(输入输出)路径的执行时间存在较为严格的要求,对于IO执行过程的日志记录必须考虑日志记录本身开销对于系统的影响。针对现有技术中日志记录占用计算存储资源、影响系统正常业务的问题,目前尚无有效的解决方案。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种日志记录方法和系统,能够降低日志记录的资源占用,并不干涉系统正常业务的正常运行。基于上述目的,本专利技术实施例的第一方面提供了一种日志记录方法,包括执行以下步骤:初始化日志消息队列,扫描日志数据存储组织和源码映射地图;响应于从日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;响应于从日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与源码映射地图相对应的代码路径记录;响应于接收到查询日志请求,而从格式化数据表项和源码映射地图读取数据记录项以格式化和展示。在一些实施方式中,方法还包括:在初始化日志消息队列的同时,还为日志记录线程分配计算资源并绑定到相对于业务系统核心异步运行的日志系统核心。在一些实施方式中,扫描日志数据存储组织包括:使用静态代码分析从日志数据存储组织中分别提取出格式化数据和动态数据;将每种格式化数据和与格式化数据的形式相对应的动态数据形成存储普通消息的格式化数据表项;为每个格式化数据表项赋予格式化数据索引。在一些实施方式中,扫描源码映射地图包括:使用静态代码分析从源码映射地图中分别提取出存储路径消息的源码路标;为每个源码路标均生成相对应的映射标识。在一些实施方式中,每个源码路标均包括以下至少之一:源码文件名、函数名、代码行号。本专利技术实施例的第二方面提供了一种日志记录系统,包括:处理器;和存储器,存储有处理器可运行的程序代码,程序代码在被运行时执行以下步骤:初始化日志消息队列,扫描日志数据存储组织和源码映射地图;响应于从日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;响应于从日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与源码映射地图相对应的代码路径记录;响应于接收到查询日志请求,而从格式化数据表项和源码映射地图读取数据记录项以格式化和展示。在一些实施方式中,步骤还包括:在初始化日志消息队列的同时,还为日志记录线程分配计算资源并绑定到相对于业务系统核心异步运行的日志系统核心。在一些实施方式中,扫描日志数据存储组织包括:使用静态代码分析从日志数据存储组织中分别提取出格式化数据和动态数据;将每种格式化数据和与格式化数据的形式相对应的动态数据形成存储普通消息的格式化数据表项;为每个格式化数据表项赋予格式化数据索引。在一些实施方式中,扫描源码映射地图包括:使用静态代码分析从源码映射地图中分别提取出存储路径消息的源码路标;为每个源码路标均生成相对应的映射标识。在一些实施方式中,每个源码路标均包括以下至少之一:源码文件名、函数名、代码行号。本专利技术具有以下有益技术效果:本专利技术实施例提供的日志记录方法和系统,通过初始化日志消息队列,扫描日志数据存储组织和源码映射地图;响应于从日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;响应于从日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与源码映射地图相对应的代码路径记录;响应于接收到查询日志请求,而从格式化数据表项和源码映射地图读取数据记录项以格式化和展示的技术方案,能够降低日志记录的资源占用,并不干涉系统正常业务的正常运行。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术提供的日志记录方法的流程示意图;图2为本专利技术提供的日志记录方法的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了一种降低日志记录的资源占用,并不干涉系统正常业务的正常运行的日志记录方法的一个实施例。图1示出的是本专利技术提供的日志记录方法的流程示意图。所述的日志记录方法,如图1所示,包括执行以下步骤:步骤S101,初始化日志消息队列,扫描日志数据存储组织和源码映射地图;步骤S103,响应于从日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;步骤S105,响应于从日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与源码映射地图相对应的代码路径记录;步骤S107,响应于接收到查询日志请求,而从格式化数据表项和源码映射地图读取数据记录项以格式化和展示。本专利技术通过分离格式化数据与动态数据的方式将格式化操作卸载到日志查看组件,提高日志记录效率的同时减少存储空间;基于消息事件实现日志记录的异步处理,隔离系统业务与日志记录的执行环境,减少日志记录对正常业务的影响;利用代码静态分析生成源码映射地图,通过地图坐标替换冗长的字符串记录源码调用位置,利用日志查看组件还原调用关系。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(ROM)或随机存储记忆体(RAM)等。所述计算机程序的实施例,可以达到与之对应的前述任意方法实施例相同或者相类似的效果。在一些实施方式中,方法还包括:在初始化日志消息队列的同时,还为日志记录线程分配计算资源并绑定到相对于业务系统核心异步运行的日志系统核心。在一些实施方式中,扫描日志数据存储组织包本文档来自技高网...

【技术保护点】
1.一种日志记录方法,其特征在于,包括执行以下步骤:/n初始化日志消息队列,扫描日志数据存储组织和源码映射地图;/n响应于从所述日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;/n响应于从所述日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与所述源码映射地图相对应的代码路径记录;/n响应于接收到查询日志请求,而从所述格式化数据表项和所述源码映射地图读取数据记录项以格式化和展示。/n

【技术特征摘要】
1.一种日志记录方法,其特征在于,包括执行以下步骤:
初始化日志消息队列,扫描日志数据存储组织和源码映射地图;
响应于从所述日志消息队列接收到普通消息,而基于普通消息的格式化数据索引并将普通消息的动态数据存储到格式化数据表项;
响应于从所述日志消息队列接收到路径消息,而将路径消息的映射标识和当前时间戳写入与所述源码映射地图相对应的代码路径记录;
响应于接收到查询日志请求,而从所述格式化数据表项和所述源码映射地图读取数据记录项以格式化和展示。


2.根据权利要求1所述的方法,其特征在于,还包括:在初始化所述日志消息队列的同时,还为日志记录线程分配计算资源并绑定到相对于业务系统核心异步运行的日志系统核心。


3.根据权利要求1所述的方法,其特征在于,扫描所述日志数据存储组织包括:
使用静态代码分析从所述日志数据存储组织中分别提取出格式化数据和动态数据;
将每种所述格式化数据和与所述格式化数据的形式相对应的所述动态数据形成存储普通消息的所述格式化数据表项;
为每个所述格式化数据表项赋予格式化数据索引。


4.根据权利要求1所述的方法,其特征在于,扫描所述源码映射地图包括:
使用静态代码分析从所述源码映射地图中分别提取出存储路径消息的源码路标;
为每个所述源码路标均生成相对应的所述映射标识。


5.根据权利要求4所述的方法,其特征在于,每个所述源码路标均包括以下至少之一:源码文件名、函数名、代码行号。


6.一种日志记录系统,其特征在于,包...

【专利技术属性】
技术研发人员:李冬冬
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1