一种日志的管理方法以及相关装置与流程
未命名
07-23
阅读:73
评论:0
1.本技术涉及计算机技术领域,尤其涉及一种日志的管理方法以及相关装置。
背景技术:
2.在业务运行过程中,可以通过日志进行问题排查。其中,排查问题的一种有效的方式是通过分析系统日志。如果系统日志全面,会为排查解决线上问题带来绝大的帮助,但是要想保证系统日志全面,就必须打印出所有的系统或业务日志。
3.一般,调整日志级别的操作通过修改宏定义或者修改配置文件的方式进行,且需要重启应用程序才可以完成日志级别调整,为一种静态的日志级别调整方式。
4.但是,在一些场景中重启应用程序进行日志级别调整可能造成业务运行的异常,例如线上业务场景进程重启应用程序可能造成日志的丢失,影响日志管理过程中数据输出的准确性。
技术实现要素:
5.有鉴于此,本技术提供一种日志的管理方法,可以有效提高日志管理过程中数据输出的准确性。
6.本技术第一方面提供一种日志的管理方法,可以应用于终端设备中包含日志的管理功能的系统或程序中,具体包括:
7.获取目标业务中监测线程周期性监测所得的改动信息,所述改动信息用于指示所述目标业务关联的第一日志管理组件更新为第二日志管理组件,所述第二日志管理组件由所述第一日志管理组件调整配置文件中的日志级别所得;
8.将所述第二日志管理组件加载到注册器中,以使得所述第二日志管理组件与所述目标业务相关联;
9.响应于所述目标业务发起的日志操作,从所述注册器中提取所述第二日志管理组件;
10.基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作。
11.可选的,在本技术一些可能的实现方式中,所述获取目标业务中监测线程周期性监测所得的改动信息,包括:
12.获取所述目标业务对应的创建组件函数;
13.基于所述创建组件函数配置单例,以执行所述监测线程;
14.根据所述单例指示的定时器周期性对所述第一日志管理组件的配置文件进行监测;
15.若所述第一日志管理组件的配置文件发生改动,则将指示标识配置改动标签;
16.基于所述改动标签获取所述改动信息。
17.可选的,在本技术一些可能的实现方式中,所述基于所述第二日志管理组件对所
述目标业务进行业务支持,以执行所述日志操作,包括:
18.确定所述目标业务对应的多个执行线程,所述执行线程通过读写锁与所述目标业务相关联;
19.若所述读写锁以读模式锁住,则采用所述读模式对应的共享模式对所述目标业务进行业务支持,以执行所述日志操作中的读线程;
20.若所述读写锁以写模式锁住,则采用所述写模式对应的独占模式对所述目标业务进行业务支持,以执行所述日志操作中的写线程。
21.可选的,在本技术一些可能的实现方式中,所述方法还包括:
22.对所述目标业务进行解析,以确定所述目标业务中的读线程和写线程;
23.确定所述读线程和所述写线程对应的比例信息;
24.根据所述比例信息为所述目标业务关联所述读写锁。
25.可选的,在本技术一些可能的实现方式中,所述方法还包括:
26.确定所述目标业务对应的操作对象;
27.确定所述目标业务对应的管理集群,所述管理集群包括所述操作对象;
28.响应于所述操作对象对所述第一日志管理组件进行配置文件的调整,将改动信息在所述管理集群中广播。
29.可选的,在本技术一些可能的实现方式中,所述方法还包括:
30.响应于所述目标业务接收到的操作指令,确定所述操作指令对应的所述操作对象;
31.确定所述操作对象对应的用户名;
32.基于所述用户名确定对应的权限项目;
33.根据所述权限项目管理所述操作对象对所述第一日志管理组件进行日志级的配置文件改动的权限。
34.可选的,在本技术一些可能的实现方式中,所述目标业务为线上服务,所述方法还包括:
35.获取所述管理集群中管理对象的登录指令;
36.若所述登录指令核验通过,则获取所述管理对象发出的用户管理操作指令;
37.基于所述用户管理操作指令对所述线上服务关联的用户对象进行管理。
38.本技术第二方面提供一种日志的管理装置,包括:
39.获取单元,用于获取目标业务中监测线程周期性监测所得的改动信息,所述改动信息用于指示所述目标业务关联的第一日志管理组件更新为第二日志管理组件,所述第二日志管理组件由所述第一日志管理组件调整配置文件中的日志级别所得;
40.加载单元,用于将所述第二日志管理组件加载到注册器中,以使得所述第二日志管理组件与所述目标业务相关联;
41.提取单元,用于响应于所述目标业务发起的日志操作,从所述注册器中提取所述第二日志管理组件;
42.管理单元,用于基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作。
43.可选的,在本技术一些可能的实现方式中,所述获取单元,具体用于获取所述目标
业务对应的创建组件函数;
44.所述获取单元,具体用于基于所述创建组件函数配置单例,以执行所述监测线程;
45.所述获取单元,具体用于根据所述单例指示的定时器周期性对所述第一日志管理组件的配置文件进行监测;
46.所述获取单元,具体用于若所述第一日志管理组件的配置文件发生改动,则将指示标识配置改动标签;
47.所述获取单元,具体用于基于所述改动标签获取所述改动信息。
48.可选的,在本技术一些可能的实现方式中,所述管理单元,具体用于确定所述目标业务对应的多个执行线程,所述执行线程通过读写锁与所述目标业务相关联;
49.所述管理单元,具体用于若所述读写锁以读模式锁住,则采用所述读模式对应的共享模式对所述目标业务进行业务支持,以执行所述日志操作中的读线程;
50.所述管理单元,具体用于若所述读写锁以写模式锁住,则采用所述写模式对应的独占模式对所述目标业务进行业务支持,以执行所述日志操作中的写线程。
51.可选的,在本技术一些可能的实现方式中,所述管理单元,具体用于对所述目标业务进行解析,以确定所述目标业务中的读线程和写线程;
52.所述管理单元,具体用于确定所述读线程和所述写线程对应的比例信息;
53.所述管理单元,具体用于根据所述比例信息为所述目标业务关联所述读写锁。
54.可选的,在本技术一些可能的实现方式中,所述管理单元,具体用于确定所述目标业务对应的操作对象;
55.所述管理单元,具体用于确定所述目标业务对应的管理集群,所述管理集群包括所述操作对象;
56.所述管理单元,具体用于响应于所述操作对象对所述第一日志管理组件进行配置文件的调整,将改动信息在所述管理集群中广播。
57.可选的,在本技术一些可能的实现方式中,所述管理单元,具体用于响应于所述目标业务接收到的操作指令,确定所述操作指令对应的所述操作对象;
58.所述管理单元,具体用于确定所述操作对象对应的用户名;
59.所述管理单元,具体用于基于所述用户名确定对应的权限项目;
60.所述管理单元,具体用于根据所述权限项目管理所述操作对象对所述第一日志管理组件进行日志级的配置文件改动的权限。
61.可选的,在本技术一些可能的实现方式中,所述目标业务为线上服务,所述管理单元,具体用于获取所述管理集群中管理对象的登录指令;
62.所述管理单元,具体用于若所述登录指令核验通过,则获取所述管理对象发出的用户管理操作指令;
63.所述管理单元,具体用于基于所述用户管理操作指令对所述线上服务关联的用户对象进行管理。
64.本技术第三方面提供一种计算机设备,包括:存储器、处理器以及总线系统;所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行上述第一方面或第一方面任一项所述的日志的管理方法。
65.本技术第四方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储
有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第一方面任一项所述的日志的管理方法。
66.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面或者第一方面的各种可选实现方式中提供的日志的管理方法。
67.从以上技术方案可以看出,本技术实施例具有以下优点:
68.通过获取目标业务中监测线程周期性监测所得的改动信息,其中改动信息用于指示目标业务关联的第一日志管理组件更新为第二日志管理组件,该第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;然后将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联;并响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件;进而基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。
附图说明
69.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
70.图1为日志的管理系统运行的网络架构图;
71.图2为本技术实施例提供的一种日志的管理的流程架构图;
72.图3为本技术实施例提供的一种日志的管理方法的流程图;
73.图4为本技术实施例提供的一种日志的管理方法的场景示意图;
74.图5为本技术实施例提供的另一种日志的管理方法的场景示意图;
75.图6为本技术实施例提供的另一种日志的管理方法的流程图;
76.图7为本技术实施例提供的另一种日志的管理方法的场景示意图;
77.图8为本技术实施例提供的另一种日志的管理方法的场景示意图;
78.图9为本技术实施例提供的一种日志的管理装置的结构示意图;
79.图10为本技术实施例提供的一种终端设备的结构示意图;
80.图11为本技术实施例提供的一种服务器的结构示意图。
具体实施方式
81.本技术实施例提供了一种日志的管理方法以及相关装置,可以应用于终端设备中包含日志的管理功能的系统或程序中,通过获取目标业务中监测线程周期性监测所得的改动信息,其中改动信息用于指示目标业务关联的第一日志管理组件更新为第二日志管理组
件,该第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;然后将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联;并响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件;进而基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。
82.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“对应于”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
83.首先,对本技术实施例中可能出现的一些名词进行解释。
84.日志:网络设备、系统及服务程序等,在运作时都会产生一个叫log的事件记录;每一行日志都记载着日期、时间、使用者及动作等相关操作的描述。
85.日志管理组件(logger):具有输出业务进程中的日志功能的组件。
86.读写锁:也叫做共享-独占锁,当读写锁以读模式锁住时,它是以共享模式锁住的,当它以写模式锁住时,它是以独占模式锁住的。
87.应理解,本技术提供的日志的管理方法可以应用于终端设备中包含日志的管理功能的系统或程序中,例如日志管理应用,具体的,日志的管理系统可以运行于如图1所示的网络架构中,如图1所示,是日志的管理系统运行的网络架构图,如图可知,日志的管理系统可以提供与多个信息源的日志的管理过程,即通过终端侧的检测操作对服务器下发的多个业务进行日志的输出;可以理解的是,图1中示出了多种终端设备,终端设备可以为计算机设备,在实际场景中可以有更多或更少种类的终端设备参与到日志的管理的过程中,具体数量和种类因实际场景而定,此处不做限定,另外,图1中示出了一个服务器,但在实际场景中,也可以有多个服务器的参与,特别是在多模型训练交互的场景中,具体服务器数量因实际场景而定。
88.本实施例中,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、cdn、以及大数据和人工智能平台等基础云计算服务的云服务器。终端可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能语音交互设备、智能家电、车载终端等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,终端以及服务器可以连接组成区块链网络,本技术在此不做限制。
89.可以理解的是,上述日志的管理系统可以运行于个人移动终端,例如:作为日志管理应用这样的应用,也可以运行于服务器,还可以作为运行于第三方设备以提供日志的管理,以得到信息源的日志的管理处理结果;具体的日志的管理系统可以是以一种程序的形
式在上述设备中运行,也可以作为上述设备中的系统部件进行运行,还可以作为云端服务程序的一种,本实施例可应用于云技术、自动驾驶等场景,具体运作模式因实际场景而定,此处不做限定。
90.在业务运行过程中,可以通过日志进行问题排查。其中,排查问题的一种有效的方式是通过分析系统日志。如果系统日志全面,会为排查解决线上问题带来绝大的帮助,但是要想保证系统日志全面,就必须打印出所有的系统或业务日志。
91.一般,调整日志级别的操作通过修改宏定义或者修改配置文件的方式进行,且需要重启应用程序才可以完成日志级别调整,为一种静态的日志级别调整方式。
92.但是,在一些场景中重启应用程序进行日志级别调整可能造成业务运行的异常,例如线上业务场景进程重启应用程序可能造成日志的丢失,影响日志管理过程中数据输出的准确性;且静态日志级别调整的特性也造成了spglog组件的局限性,因为线上任务通常不可以重启服务。
93.为了解决上述问题,本技术提出了一种日志的管理方法,该方法应用于图2所示的日志的管理的流程框架中,如图2所示,为本技术实施例提供的一种日志的管理的流程架构图,用户通过终端执行检测操作,会触发服务器进行业务相关日志的输出,从而通过监测线程确定最新的日志管理组件(logger),并将其加载到注册器中,在业务需要打印日志时,即可调用最新的logger执行打印日志的操作。
94.可以理解的是,在软件开发和系统的运行过程中,日志管理是一个非常重要的部分。其经常会用到各种各样的日志框架。为了避免在程序正常运行时输出不必要的信息,其在使用日志框架时会设置默认的日志级别。而程序在线上运行时,其需要在特定的场景下针对性地动态调整日志级别,以便输出更多的日志信息排查线上问题,或是减少日志打印带来的性能消耗。在不同的应用场景下,其需要随时调整日志的级别,得到更有效的日志信息。
95.本实施例中,logger为spdlog中的一种功能实现组件;且目前c++日志组件中,spdlog日志库应用最为广泛,spdlog是一个开源的、快速的、仅有头文件的c++日志库,它提供了向流、标准输出、文件、系统日志、调试器等目标输出日志的能力。它支持的平台包括windows、linux、mac、android。
96.spdlog特性包括:响应快,性能是它的主要目标;仅包括头文件;日志的格式化处理使用开源的fmt库;可选的printf语法支持;快速的异步模式,支持异步写日志;自定义格式;条件日志;多线程/单线程日志;各种日志目标:可对日志文件进行循环输出;可每日生成日志文件;支持控制台日志输出(支持颜色);系统日志;windows debugger;较容易扩展自定义日志目标。
97.具体的,spdlog作为一种日志组件,实际使用原来越广泛,但低版本的spdlog只能在编译阶段修改日志级别信息。一般比较成熟的软件团队都会对原生的日志组件进行封装使用,而不会去直接调用,一来是为了代码上的规范、易于管理,二来也需要对原生框架进行更好的功能拓展、便于团队使用。优雅、严谨的日志框架设计对项目日后生产日志的维护与排查尤为关键。
98.本实施例即为对spdlog的功能拓展,提出了一种基于spdlog的高性能日志级别动态调整方案。这种优化针对线上任务,因为线上任务通常不可以重启服务。另外针对线上任
务安全等级较高的特点,本实施例引入权限系统和可视化操作界面,确保只有对应服务的owner才可以进行日志级别的调整,确保操作安全,会把操作内容实时周知给系统的所有相关责任人,避免误伤。操作者可以通过其提供的管理页面,定向修改一个或一批服务节点。
99.可以理解的是,本技术所提供的方法可以为一种程序的写入,以作为硬件系统中的一种处理逻辑,也可以作为一种日志的管理装置,采用集成或外接的方式实现上述处理逻辑。作为一种实现方式,该日志的管理装置通过获取目标业务中监测线程周期性监测所得的改动信息,其中改动信息用于指示目标业务关联的第一日志管理组件更新为第二日志管理组件,该第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;然后将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联;并响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件;进而基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。
100.结合上述流程架构,下面将对本技术中日志的管理方法进行介绍,请参阅图3,图3为本技术实施例提供的一种日志的管理方法的流程图,该管理方法可以是由服务器执行的,本技术实施例至少包括以下步骤:
101.301、获取目标业务中监测线程周期性监测所得的改动信息。
102.本实施例中,改动信息用于指示目标业务关联的第一日志管理组件(logger1)更新为第二日志管理组件(logger2),第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;日志级别包括debug/trace/error/info等等,这是由于程序在线上运行时,需要在特定的场景下针对性地动态调整日志级别,以便输出更多的日志信息排查线上问题,或是减少日志打印带来的性能消耗。在不同的应用场景下,其需要随时调整日志的级别,得到更有效的日志信息。
103.具体的,本实施例应用于spdlog日志库中。spdlog是一个用c++11编写的高性能日志库,spdlog提供的日志格式非常丰富,并且允许用户自定义需要的格式。此外spdlog对日志文件的类型也做了充分扩展,支持控制台,普通文件,按大小滚动文件,按时间滚动文件,如果不能满足需要,可以自己扩展格式。
104.在一种可能的场景中,spdlog日志库的基本逻辑结构如图4所示,图4为本技术实施例提供的一种日志的管理方法的场景示意图;图中示出的registry管理全部的日志对象,即使用《name,logger》将日志对象和其名称对应起来,后面使用的时候能够直接经过名称获取对应的日志对象,且保存所有日志对象的默认属性,可以使用提供的属性控制接口改变全部的日志对象属性。而sync-logger用于异步提取日志的对象,并进一步通过thread-pool进行缓存,从而在base-sink中进行日志的编译过程,具体的编译内容包括日志文本序列、回滚日志序列、系统日志记录、定义宏、时间序列等,进一步对上述编译内容进行格式化处理,进而输出日志文件。
105.可以理解的是,该结构提供的日志格式非常丰富,并且允许用户自定义需要的格式。且对日志文件的类型也做了充分扩展,支持控制台,普通文件,按大小滚动文件,按时间滚动文件,如果不能满足需要,可以自己扩展格式。并且支持单/多线程,异步/同步,阻塞非
阻塞模式。
106.在本结构中,目前spdlog调整日志级别的方式为:通过在registry中修改宏定义或者修改配置文件的方式进行logger的配置,且配置过程中需要重启应用程序,即重启spdlog组件才可以完成日志级别调整,是一种静态的日志级别调整方式,静态日志级别调整的特性也造成了spglog组件的局限性,因为线上任务通常不可以重启服务;且日志级别调整没有权限控制,而线上任务日志级别调整是一个需要引入权限控制的行为。比如一旦日志级别调低,可能会造成日志量的暴涨,同时会直接造成系统性能下降,极端情况下,甚至导致系统宕机。因此本技术提出一种动态的日志级别调整方式,其具体的实现方式如下。
107.在一种可能的场景中,本实施例中的logger可以通过如下逻辑实现,即首先使用spdlog的一个典型example,一般先创建一个logger对象,然后获取这个logger对象进行日志输出,日志级别包括debug/trace/error/info等等。
108.具体的,对于改动信息的确定过程可以是通过封装改造创建logger函数来完成支持动态日志级别修改,具体可以获取目标业务对应的创建组件函数;然后基于创建组件函数配置单例,以执行监测线程;并根据单例指示的定时器周期性对第一日志管理组件的配置文件进行监测;若第一日志管理组件的配置文件发生改动,则将指示标识配置改动标签;进而基于改动标签获取改动信息。
109.其中,采用单例进行配置保证整个系统中一个类只有一个对象的实例,即通过单例模式可以节省公共资源,即不需要所用的组件均参与到logger的配置中;另外,单例模式方便控制,这是由于单例模式只有一个对象来向日志里写入信息方便控制,避免了这种多人干扰的问题出现。
110.具体的,本技术中监测线程的控制逻辑如图5所示,图5为本技术实施例提供的另一种日志的管理方法的场景示意图;对于图中的监测线程的实现,即通过封装改造创建logger函数完成支持动态日志级别修改,具体改造创建logger函数如下:新增构建单例,保证一个进程只有一个监测线程,该单例就是构建了一个线程(thread),即confupdatethread;该thread本质上就是一个定时器,会基于周期(while)定期监测配置文件(conf)有没有被改动,如果改动就把一个指示标识(changeflag)置为改动标签(true),由于logger的创建函数有一个renewcheck函数,该函数会判断changeflag是否为true,如果为true则重新加载配置文件,即保证加载的配置文件为调整后的文件。
111.对于图中的注册器(registry),即使用单例registry来搜索可用的logger。registry中保存了所有logger所需的全部信息,包括该logger对应的console是文件还是控制台,该logger对应的日志级别等,从而实现多个logger的收集与调用。
112.具体的,对于周期性的监测过程,监测线程可以每隔5s定期监测conf文件有没有被改动,具体可以通过检测文件的最后修改时间确定,进一步的监测线程检测到配置文件修改动态加载配置文件后会把最新的logger更新到registry当中。
113.在具体的日志操作中,每次业务打印日志的时候(比如logger-》info)得到的logger是最新的,所以每次都需要从registry取最新的logger。即该过程涉及到一个多线程读写一个共享变量的场景,具体为监测线程每次动态加载后会create最新的logger到registry中(写入registry),每次业务打印日志都需要从registry取最新的logger(从registry读取),从而保证了logger的实时性,从而实现动态的日志调整过程。
114.302、将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联。
115.本实施例中,将第二日志管理组件加载到注册器中的过程为周期性的,即响应于日志管理组件的改动,改动后的日志管理组件即会加载到注册器中,从而保证logger的准确性。
116.可选的,注册器(registry)还用于搜索可用的logger。registry中保存了所有logger所需的全部信息,包括该logger对应的console是文件还是控制台,该logger对应的日志级别等,从而实现多个logger的收集与调用。
117.303、响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件。
118.本实施例中,日志操作可以是打印日志操作,该日志可以用于数据查看、bug查找、数据收集等场景,具体功能因实际场景而定。
119.每次业务打印日志的时候(比如logger-》info)得到的logger是最新的,所以每次都需要从registry取最新的logger。即该过程涉及到一个多线程读写一个共享变量的场景,具体为监测线程每次动态加载后会create最新的logger到registry中(写入registry),每次业务打印日志都需要从registry取最新的logger(从registry读取),从而保证了logger的实时性,从而实现动态的日志调整过程。
120.304、基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。
121.本实施例中,执行日志操作可以是打印日志的操作,即进行日志输出,本实施例还可以对日志输出性能进行优化。
122.具体的,监测线程每次动态加载后会create最新的logger到registry中,为写入的过程,且每次业务打印日志都需要从registry取最新的logger,为读取的过程。即registry相当于一块共享内存,考虑有一块共享内存,外加好些个线程需要访问这块共享内存,故可以直接上mutex互斥锁,把访问全部互斥,从而进行逐一操作。
123.本实施例中,应当注意的的,如果写入很少的情况写把读取也互斥了,这种情况下日志的性能会很差,本实施例结合boost读写锁进行日志输出性能优化。具体可以确定目标业务对应的多个执行线程,该执行线程通过读写锁与目标业务相关联;若读写锁以读模式锁住,则采用读模式对应的共享模式对目标业务进行业务支持,以执行日志操作中的读线程;若读写锁以写模式锁住,则采用写模式对应的独占模式对目标业务进行业务支持,以执行日志操作中的写线程。
124.可以理解的是,读写锁应用于对于很多的读线程,较少的写线程的场景。例如一个业务进程开了三个线程,每个线程都往同一个logger打印日志,且每个线程调用logger-》info可能会上万次(因为业务需要,需要大量日志),其中包含了上万个读线程,而只有一个写线程的场景。这种情况下读写锁会比互斥锁的性能好。故对于该场景可以进行识别,然后进行相应的配置,即对目标业务进行解析,以确定目标业务中的读线程和写线程;然后确定读线程和写线程对应的比例信息;进而根据比例信息为目标业务关联读写锁,例如对于多读线程,少写线程的场景采用读写锁。
125.在一种可能的场景中,在均支持动态调整,从注册器中提取logger的前提下,读写锁与互斥锁性能对比如表1所示,可见读写锁v3相较于互斥锁v2.0平均时间节省了28%。
126.表1读写锁与互斥锁性能对比表
[0127][0128]
结合上述实施例可知,通过获取目标业务中监测线程周期性监测所得的改动信息,其中改动信息用于指示目标业务关联的第一日志管理组件更新为第二日志管理组件,该第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;然后将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联;并响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件;进而基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。
[0129]
在一种可能的场景中,由于spdlog日志库日志级别调整没有权限控制,而线上任务日志级别调整是一个需要引入权限控制的行为。比如一旦日志级别调低,可能会造成日志量的暴涨,同时会直接造成系统性能下降,极端情况下,甚至导致系统宕机,本实施例亦可以在上述实施例的基础上解决该问题,下面对该场景进行说明。请参阅图6,图6为本技术实施例提供的另一种日志的管理方法的流程图,本技术实施例至少包括以下步骤:
[0130]
601、服务器确定目标业务对应的操作对象。
[0131]
本实施例中,操作对象即为请求对目标业务进行日志级别调整的对象,即核验该对象(终端)是否具有对目标业务进行日志级别调整的权限。
[0132]
602、第一终端核验管理权限。
[0133]
本实施例中,第一终端即为目标业务对应的操作对象,在进行调整之前,第一终端可以主动的核验管理权限;例如管理权限可以设定有效期,通过主动的核验管理权限,可以避免权限失效后的操作,提高权限管理的有效性。
[0134]
603、第二终端核验管理权限。
[0135]
本实施例中,第二终端即为目标业务对应的管理终端(管理员),管理终端可以共享对于目标业务的管理权限。
[0136]
604、确定目标业务对应的管理集群。
[0137]
本实施例中,管理集群包括操作对象,该操作对象可以是第一终端或第二终端。这是由于目标业务一般配置了多个管理员,即管理集群中配置了多个管理员。
[0138]
605、第一终端对第一日志管理组件进行配置文件的调整。
[0139]
本实施例中,第一终端对第一日志管理组件进行配置文件调整的过程参见图3所示实施例的步骤301-304,此处不作赘述。
[0140]
606、响应于操作对象对第一日志管理组件进行配置文件的调整,将改动信息在管理集群中广播。
[0141]
本实施例中,为了确保只有对应服务的管理员才可以进行日志级别的调整,确保操作安全,会把操作内容实时周知给系统的所有相关责任人(管理集群),避免误伤。
[0142]
进一步的,操作者可以通过其提供的管理页面,定向修改一个或一批服务节点。具体如图7所示,图7为本技术实施例提供的另一种日志的管理方法的场景示意图;图中示出了操作者可以通过管理系统进行权限的配置、日志级别调整、在线日志查看以及报警通知的过程,并可以定向修改一个或一批服务节点。
[0143]
具体的,对于图7所示场景中权限的管理过程,即确定操作对象是否具有操作权限,具体可以响应于目标业务接收到的操作指令,确定操作指令对应的操作对象;然后确定操作对象对应的用户名;并基于用户名确定对应的权限项目;进而根据权限项目管理操作对象对第一日志管理组件进行日志级的配置文件改动的权限,从而保证日志的安全性。
[0144]
在一种可能的场景中,操作对象需要登录管理系统才能对日志进行管理。具体可以首先获取管理集群中管理对象的登录指令;若登录指令核验通过,则获取管理对象发出的用户管理操作指令;然后基于用户管理操作指令对线上服务关联的用户对象进行管理。具体的,权限认证信息可以通过mongodb数据库存储,存储key为用户名,存储value为服务名,进而根据value配置权限项目,操作对象调整日志级别前需要进行权限认证,只有认证通过才可以进行修改对应服务的日志配置文件操作。
[0145]
在一种可能的界面场景中,上述日志管理的过程可以通过图8进行展示,图8为本技术实施例提供的另一种日志的管理方法的场景示意图;图中示出了操作对象使用账户登录控制台后,可以进行用户权限管理,如增加某个用户admin角色,或者删除某个用户的角色,进行用户权限管理,预设该用户对应的admin角色具有哪些服务的日志配置文件的修改权限,增加/删除某个用户对应的admin角色的某日志配置文件的修改权限;进一步的还可以点击组件配置详情a1进行各个服务logger配置情况的查看。
[0146]
607、第二终端接收改动信息,并进行信息核验。
[0147]
本实施例中,第二终端可以接收到第一终端进行的日志级别的改动,由于目标业务由多个管理员进行管理,第二终端在接收到改动信息后可以进行改动必要性的核验,并为接下来在第二终端进行的改动提供参考,即以第一终端改动之后的业务版本为基础进行进一步的调整,从而提高业务处理的准确性。
[0148]
本实施例针对线上任务安全等级较高的特点,引入权限系统和可视化操作界面,确保只有对应服务的操作对象才可以进行日志级别的调整,确保操作安全,会把操作内容实时周知给系统的所有相关责任人,避免误伤,且操作对象可以通过其提供的管理页面,定向修改一个或一批服务节点,提高日志管理过程的精确度。
[0149]
为了更好的实施本技术实施例的上述方案,下面还提供用于实施上述方案的相关装置。请参阅图9,图9为本技术实施例提供的一种日志的管理装置的结构示意图,日志的管理装置900包括:
[0150]
获取单元901,用于获取目标业务中监测线程周期性监测所得的改动信息,所述改动信息用于指示所述目标业务关联的第一日志管理组件更新为第二日志管理组件,所述第二日志管理组件由所述第一日志管理组件调整配置文件中的日志级别所得;
[0151]
加载单元902,用于将所述第二日志管理组件加载到注册器中,以使得所述第二日志管理组件与所述目标业务相关联;
[0152]
提取单元903,用于响应于所述目标业务发起的日志操作,从所述注册器中提取所述第二日志管理组件;
[0153]
管理单元904,用于基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作。
[0154]
可选的,在本技术一些可能的实现方式中,所述获取单元901,具体用于获取所述目标业务对应的创建组件函数;
[0155]
所述获取单元901,具体用于基于所述创建组件函数配置单例,以执行所述监测线程;
[0156]
所述获取单元901,具体用于根据所述单例指示的定时器周期性对所述第一日志管理组件的配置文件进行监测;
[0157]
所述获取单元901,具体用于若所述第一日志管理组件的配置文件发生改动,则将指示标识配置改动标签;
[0158]
所述获取单元901,具体用于基于所述改动标签获取所述改动信息。
[0159]
可选的,在本技术一些可能的实现方式中,所述管理单元904,具体用于确定所述目标业务对应的多个执行线程,所述执行线程通过读写锁与所述目标业务相关联;
[0160]
所述管理单元904,具体用于若所述读写锁以读模式锁住,则采用所述读模式对应的共享模式对所述目标业务进行业务支持,以执行所述日志操作中的读线程;
[0161]
所述管理单元904,具体用于若所述读写锁以写模式锁住,则采用所述写模式对应的独占模式对所述目标业务进行业务支持,以执行所述日志操作中的写线程。
[0162]
可选的,在本技术一些可能的实现方式中,所述管理单元904,具体用于对所述目标业务进行解析,以确定所述目标业务中的读线程和写线程;
[0163]
所述管理单元904,具体用于确定所述读线程和所述写线程对应的比例信息;
[0164]
所述管理单元904,具体用于根据所述比例信息为所述目标业务关联所述读写锁。
[0165]
可选的,在本技术一些可能的实现方式中,所述管理单元904,具体用于确定所述目标业务对应的操作对象;
[0166]
所述管理单元904,具体用于确定所述目标业务对应的管理集群,所述管理集群包括所述操作对象;
[0167]
所述管理单元904,具体用于响应于所述操作对象对所述第一日志管理组件进行配置文件的调整,将改动信息在所述管理集群中广播。
[0168]
可选的,在本技术一些可能的实现方式中,所述管理单元904,具体用于响应于所述目标业务接收到的操作指令,确定所述操作指令对应的所述操作对象;
[0169]
所述管理单元904,具体用于确定所述操作对象对应的用户名;
[0170]
所述管理单元904,具体用于基于所述用户名确定对应的权限项目;
[0171]
所述管理单元904,具体用于根据所述权限项目管理所述操作对象对所述第一日志管理组件进行日志级的配置文件改动的权限。
[0172]
可选的,在本技术一些可能的实现方式中,所述目标业务为线上服务,所述管理单元904,具体用于获取所述管理集群中管理对象的登录指令;
[0173]
所述管理单元904,具体用于若所述登录指令核验通过,则获取所述管理对象发出的用户管理操作指令;
[0174]
所述管理单元904,具体用于基于所述用户管理操作指令对所述线上服务关联的用户对象进行管理。
[0175]
通过获取目标业务中监测线程周期性监测所得的改动信息,其中改动信息用于指示目标业务关联的第一日志管理组件更新为第二日志管理组件,该第二日志管理组件由第一日志管理组件调整配置文件中的日志级别所得;然后将第二日志管理组件加载到注册器中,以使得第二日志管理组件与目标业务相关联;并响应于目标业务发起的日志操作,从注册器中提取第二日志管理组件;进而基于第二日志管理组件对目标业务进行业务支持,以执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。
[0176]
本技术实施例还提供了一种终端设备,如图10所示,是本技术实施例提供的另一种终端设备的结构示意图,为了便于说明,仅示出了与本技术实施例相关的部分,具体技术细节未揭示的,请参照本技术实施例方法部分。该终端可以为包括手机、平板电脑、个人数字助理(personal digital assistant,pda)、销售终端(point of sa,pos)、车载电脑等任意终端设备,以终端为手机为例:
[0177]
图10示出的是与本技术实施例提供的终端相关的手机的部分结构的框图。参考图10,手机包括:射频(radio frequency,rf)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(wireless fidelity,wifi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0178]
下面结合图10对手机的各个构成部件进行具体的介绍:
[0179]
rf电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,rf电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noise amplifier,lna)、双工器等。此外,rf电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(global system of mobile communication,gsm)、通用分组无线服务(general packet radio service,gprs)、码分多址(code division multiple access,cdma)、宽带码分多址(wideband code division multiple access,wcdma)、长期演进(long term evolution,lte)、电子邮件、短消息服务(short messaging service,sms)等。
[0180]
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储
器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
[0181]
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作,以及在触控面板1031上一定范围内的隔空触控操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0182]
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(liquid crystal display,lcd)、有机发光二极管(organic light-emitting diode,oled)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
[0183]
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0184]
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经rf电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
[0185]
wifi属于短距离无线传输技术,手机通过wifi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了wifi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0186]
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,
通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据。可选的,处理器1080可包括一个或多个处理单元;可选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
[0187]
手机还包括给各个部件供电的电源1090(比如电池),可选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
[0188]
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
[0189]
在本技术实施例中,该终端所包括的处理器1080还具有执行如上述页面处理方法的各个步骤的功能。
[0190]
本技术实施例还提供了一种服务器,请参阅图11,图11是本技术实施例提供的一种服务器的结构示意图,该服务器1100可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,cpu)1122(例如,一个或一个以上处理器)和存储器1132,一个或一个以上存储应用程序1142或数据1144的存储介质1130(例如一个或一个以上海量存储设备)。其中,存储器1132和存储介质1130可以是短暂存储或持久存储。存储在存储介质1130的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器1122可以设置为与存储介质1130通信,在服务器1100上执行存储介质1130中的一系列指令操作。
[0191]
服务器1100还可以包括一个或一个以上电源1126,一个或一个以上有线或无线网络接口1150,一个或一个以上输入输出接口1158,和/或,一个或一个以上操作系统1141,例如windows servertm,mac os xtm,unixtm,linuxtm,freebsdtm等等。
[0192]
上述实施例中由管理装置所执行的步骤可以基于该图11所示的服务器结构。
[0193]
本技术实施例中还提供一种计算机可读存储介质,该计算机可读存储介质中存储有日志的管理指令,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中日志的管理装置所执行的步骤。
[0194]
本技术实施例中还提供一种包括日志的管理指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如前述图3至图8所示实施例描述的方法中日志的管理装置所执行的步骤。
[0195]
本技术实施例还提供了一种日志的管理系统,所述日志的管理系统可以包含图9所描述实施例中的日志的管理装置,或图10所描述实施例中的终端设备,或者图11所描述的服务器。
[0196]
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0197]
在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦
合或通信连接,可以是电性,机械或其它的形式。
[0198]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0199]
另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0200]
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,日志的管理装置,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0201]
以上所述,以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:
1.一种日志的管理方法,其特征在于,包括:获取目标业务中监测线程周期性监测所得的改动信息,所述改动信息用于指示所述目标业务关联的第一日志管理组件更新为第二日志管理组件,所述第二日志管理组件由所述第一日志管理组件调整配置文件中的日志级别所得;将所述第二日志管理组件加载到注册器中,以使得所述第二日志管理组件与所述目标业务相关联;响应于所述目标业务发起的日志操作,从所述注册器中提取所述第二日志管理组件;基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作。2.根据权利要求1所述的方法,其特征在于,所述获取目标业务中监测线程周期性监测所得的改动信息,包括:获取所述目标业务对应的创建组件函数;基于所述创建组件函数配置单例,以执行所述监测线程;根据所述单例指示的定时器周期性对所述第一日志管理组件的配置文件进行监测;若所述第一日志管理组件的配置文件发生改动,则将指示标识配置改动标签;基于所述改动标签获取所述改动信息。3.根据权利要求1所述的方法,其特征在于,所述基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作,包括:确定所述目标业务对应的多个执行线程,所述执行线程通过读写锁与所述目标业务相关联;若所述读写锁以读模式锁住,则采用所述读模式对应的共享模式对所述目标业务进行业务支持,以执行所述日志操作中的读线程;若所述读写锁以写模式锁住,则采用所述写模式对应的独占模式对所述目标业务进行业务支持,以执行所述日志操作中的写线程。4.根据权利要求3所述的方法,其特征在于,所述方法还包括:对所述目标业务进行解析,以确定所述目标业务中的读线程和写线程;确定所述读线程和所述写线程对应的比例信息;根据所述比例信息为所述目标业务关联所述读写锁。5.根据权利要求1-4任一项所述的方法,其特征在于,所述方法还包括:确定所述目标业务对应的操作对象;确定所述目标业务对应的管理集群,所述管理集群包括所述操作对象;响应于所述操作对象对所述第一日志管理组件进行配置文件的调整,将改动信息在所述管理集群中广播。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:响应于所述目标业务接收到的操作指令,确定所述操作指令对应的所述操作对象;确定所述操作对象对应的用户名;基于所述用户名确定对应的权限项目;根据所述权限项目管理所述操作对象对所述第一日志管理组件进行日志级的配置文件改动的权限。7.根据权利要求5所述的方法,其特征在于,所述目标业务为线上服务,所述方法还包
括:获取所述管理集群中管理对象的登录指令;若所述登录指令核验通过,则获取所述管理对象发出的用户管理操作指令;基于所述用户管理操作指令对所述线上服务关联的用户对象进行管理。8.一种日志的管理装置,其特征在于,包括:获取单元,用于获取目标业务中监测线程周期性监测所得的改动信息,所述改动信息用于指示所述目标业务关联的第一日志管理组件更新为第二日志管理组件,所述第二日志管理组件由所述第一日志管理组件调整配置文件中的日志级别所得;加载单元,用于将所述第二日志管理组件加载到注册器中,以使得所述第二日志管理组件与所述目标业务相关联;提取单元,用于响应于所述目标业务发起的日志操作,从所述注册器中提取所述第二日志管理组件;管理单元,用于基于所述第二日志管理组件对所述目标业务进行业务支持,以执行所述日志操作。9.一种计算机设备,其特征在于,所述计算机设备包括处理器以及存储器:所述存储器用于存储程序代码;所述处理器用于根据所述程序代码中的指令执行权利要求1至7任一项所述的日志的管理方法。10.一种计算机程序产品,包括计算机程序/指令,所述计算机程序/指令存储于计算机可读存储介质,其特征在于,所述计算机可读存储介质中的所述计算机程序/指令被处理器执行时实现上述权利要求1至7任一项所述的日志的管理方法的步骤。
技术总结
本申请公开了一种日志的管理方法以及相关装置,可应用于地图领域。通过获取目标业务中监测线程周期性监测所得的改动信息;然后将第二日志管理组件加载到注册器中;并响应于目标业务发起的日志操作提取第二日志管理组件;进而基于第二日志管理组件执行日志操作。从而实现日志级别的动态调整的过程,由于采用监测线程对日志配置文件的调整进行监测,并将改动后的日志管理组件即时的加载到注册器中,使得日志操作的执行过程中采用的为改动后的日志管理组件,保证了输出日志过程中日志级别的准确性,提高了日志管理过程中数据的准确性。提高了日志管理过程中数据的准确性。提高了日志管理过程中数据的准确性。
技术研发人员:弓静
受保护的技术使用者:腾讯科技(深圳)有限公司
技术研发日:2022.01.07
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
上一篇:脏衣篓的制作方法 下一篇:一种可化学循环的高性能芳香族聚酯的制备方法
