CN114579212A - 一种系统日志记录方法、装置、电子设备与存储介质 - Google Patents

一种系统日志记录方法、装置、电子设备与存储介质 Download PDF

Info

Publication number
CN114579212A
CN114579212A CN202210171285.XA CN202210171285A CN114579212A CN 114579212 A CN114579212 A CN 114579212A CN 202210171285 A CN202210171285 A CN 202210171285A CN 114579212 A CN114579212 A CN 114579212A
Authority
CN
China
Prior art keywords
parameter
target operation
service
information
determining
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210171285.XA
Other languages
English (en)
Inventor
董佩晶
郭鑫
李玲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Hangxing Yongzhi Technology Co ltd
Original Assignee
Beijing Hangxing Yongzhi Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Hangxing Yongzhi Technology Co ltd filed Critical Beijing Hangxing Yongzhi Technology Co ltd
Priority to CN202210171285.XA priority Critical patent/CN114579212A/zh
Publication of CN114579212A publication Critical patent/CN114579212A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4488Object-oriented
    • G06F9/449Object-oriented method invocation or resolution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/1805Append-only file systems, e.g. using logs or journals to store data
    • G06F16/1815Journaling file systems

Abstract

本发明提供一种系统日志记录方法及装置,方法包括:在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;基于面向切面的标签,启动区别于主线程的从线程;在从线程上,通过过滤的方式获取服务调用目标操作的方法以及服务调用目标操作时所传递的参数;根据服务调用目标操作时所传递的参数,确定参数的标识信息以及参数当前的属性状态信息;根据服务调用目标操作的方法、参数的标识信息以及参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。本发明通过从线程来获取系统日志,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。

Description

一种系统日志记录方法、装置、电子设备与存储介质
技术领域
本发明涉及互联网技术领域,尤其涉及一种系统日志记录方法、装置、电子设备与存储介质。
背景技术
在目前的电子办公业务系统中,大多采用面向服务的系统架构进行系统的设计,这种方式带来的优点是系统扩展性好,模块或功能之间耦合度低,系统实现简单,系统中传递的参数大多数是对这些对象的增加、修改、删除的操作。但是当用户需要在系统实现的过程中加入操作日志审计,甚至需要对操作过程中传递的参数在增删改之前的状态进行记录时,就需要采用单独的服务进程进行编程,带来的几个劣势是:首先需要单独编程实现,程序设计和实现复杂;第二是由于采用顺序调用的方式,导致系统性能下降,影响正常业务的开展。
发明内容
本发明的目的是提供一种系统日志记录方法、装置、电子设备与存储介质,用以解决现有技术中在记录系统日志时需要单独编程进而导致系统性能下降的问题,通过在业务进程中启动单独线程来获取系统日志,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
本发明提供一种系统日志记录方法,包括:
在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
基于所述面向切面的标签,启动区别于所述主线程的从线程;
在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
根据本发明提供的系统日志记录方法,所述在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签,包括:
确定待处理业务流程;
在主线程上通过服务调用的方式执行所述待处理业务流程中的目标操作的过程中,判断所述目标操作是否存在面向切面的标签;
在存在面向切面的标签的情况下,确定所述目标操作所对应的面向切面的标签。
根据本发明提供的系统日志记录方法,所述判断所述目标操作是否存在面向切面的标签,包括:
判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签;
在存在采用Java语言中的注解所描述的面向切面的标签,或者存在采用.net语言或C#语言中的特性所描述的面向切面的标签的情况下,确定所述目标操作存在面向切面的标签。
根据本发明提供的系统日志记录方法,所述在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数,包括:
在所述从线程上,通过面向切面的编程思想或控制反转的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数。
根据本发明提供的系统日志记录方法,所述根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息,包括:
通过反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息。
根据本发明提供的系统日志记录方法,所述根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,包括:
从消息队列中获取服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息;
在服务调用所述目标操作的方法为新增的情况下,确定所述参数的标识信息以及所述参数当前的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为删除的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,确定所述参数原有的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为修改的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,将所述参数当前的属性状态信息与所述参数原有的属性状态信息进行比较,将属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息确定为需要记录到系统日志中的信息。
本发明还提供一种系统日志记录装置,包括:
面向切面的标签确定模块,用于在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
从线程启动模块,用于基于所述面向切面的标签,启动区别于所述主线程的从线程;
方法及参数获取模块,用于在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
参数信息确定模块,用于根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
系统日志获取模块,用于根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
本发明还提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现任一项所述系统日志记录方法的步骤。
本发明还一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现任一项所述系统日志记录方法的步骤。
本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,所述指令在被执行时用于实现任一项所述系统日志记录方法的步骤。
本发明提供一种系统日志记录方法、装置、电子设备与存储介质,通过在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;基于所述面向切面的标签,启动区别于所述主线程的从线程;在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。本发明通过在主线程中启动从线程来获取系统日志,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的系统日志记录方法的流程示意图;
图2是本发明提供的系统日志记录装置的结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合图1-图3描述本发明的系统日志记录方法、装置、电子设备与存储介质。
图1为本发明提供的系统日志记录方法的流程图,如图1所示,本发明提供的系统日志记录方法包括:
步骤1、在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
在本实施例中,线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单位。基于线程的定义,主线程是指执行待处理业务的线程。服务调用的方式包括总线调用。切面是切点和通知的组合称谓,其中,通知和切点共同定义了切面是什么,在何时和在何处完成切面的功能。基于切面的定义,面向切面的标签是指目标操作所对应的代码中存在的指示切面位置的特定符号。
在本实施例中,系统在主线程上通过服务调用的方式执行正常的业务流程,当程序以服务调用的方式运行到待处理业务流程中的目标操作时,确定存在面向切面的标签。
步骤2、基于所述面向切面的标签,启动区别于所述主线程的从线程;
在本实施例中,从线程是指区别于执行业务流程的主线程的另一个异步线程,用于执行实现其他功能的非业务流程。接上述实施例,在确定存在面向切面的标签后,启动区别于主线程的从线程。
步骤3、在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
在本实施例中,过滤方式包括路由过滤,路由过滤是指通过路由器的MAC或者IP过滤设置,根据应用规则不让规则以外的MAC或者路由上网,或者只允许这些添加的MAC或者IP通过路由。接上述实施例,从线程程序运行时,通过过滤的方式,获取主线程中以服务调用的方式执行待处理业务流程中的目标操作的方法以及所传递的参数。
步骤4、根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
在本实施例中,参数的标识信息是指参数的唯一标识,优选为参数的ID值。参数当前的属性状态信息是指参数当前的各个属性的值。接上述实施例,基于获取的主线程中以服务调用的方式执行待处理业务流程中的目标操作时所传递的参数,确定所传递参数的ID值以及所传递参数当前的各个属性的值。
步骤5、根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
在本实施例中,系统日志是记录系统中硬件、软件和系统问题的信息,同时还可以监视系统中发生的事件。接上述实施例,基于获取到的主线程中以服务调用的方式执行待处理业务流程中的目标操作的方法,以及求得的参数的标识信息和参数当前的属性状态信息,确定出需要记录到系统日志中的信息,然后将确定出的信息记录到系统日志中。
本发明提供一种系统日志记录方法,通过在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;基于所述面向切面的标签,启动区别于所述主线程的从线程;在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。本发明通过在主线程中启动从线程来获取系统日志,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录方法,所述在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签,包括:
确定待处理业务流程;
在主线程上通过服务调用的方式执行所述待处理业务流程中的目标操作的过程中,判断所述目标操作是否存在面向切面的标签;
在存在面向切面的标签的情况下,确定所述目标操作所对应的面向切面的标签。
在本实施例中,首先确定主线程上的待处理业务流程,业务操作人员发起待处理业务流程的操作时,通过服务调用的方式执行正常的待处理业务,当程序以服务调用的方式运行到待处理业务流程的目标操作时,判断目标操作是否存在面向切面的标签,判断结果为存在面向切面的标签的情况下,确定目标操作所对应的面向切面的标签。
本发明提供一种系统日志记录方法,通过给出确定目标操作所对应的面向切面的标签的具体过程,有力的支持了后续在主线程中启动从线程进而获取系统日志的过程,进而提升业务流程的执行效率,并降低主线程业务流程和系统日志之间程序的耦合度。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录方法,所述判断所述目标操作是否存在面向切面的标签,包括:
判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签;
在存在采用Java语言中的注解所描述的面向切面的标签,或者存在采用.net语言或C#语言中的特性所描述的面向切面的标签的情况下,确定所述目标操作存在面向切面的标签。
在本实施例中,Java语言中的注解也叫Java语言中的元数据,是一种代码级别的说明,通常用@符号进行说明,与类、接口、枚举是同一个层次。.net语言或C#语言中的特性类似于Java语言中的注解,通常用Attribute符号进行说明,是一种可以由用户自定义的修饰符,可以作为元数据内容进行添加,便于进行元数据的解析和依赖注入等。
在本实施例中,判断目标操作所对应的代码中是否存在采用Java语言中的注解@所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性Attribute所描述的面向切面的标签;在存在采用Java语言中的注解@所描述的面向切面的标签,或者存在采用.net语言或C#语言中的特性Attribute所描述的面向切面的标签的情况下,确定目标操作存在面向切面的标签。下边以C#语言为例,假设有一个目标操作,对应的代码为:
Figure BDA0003518133160000091
则,可以判断知道这个目标操作的对应代码存在采用C#语言中的特性Attribute所描述的面向切面的标签,这个目标操作对应的信息资源表是CTable_1,ID属性对应的信息资源列是ID,CName对应的列是Name,同时ID是区分这个目标操作的唯一标识。
本发明提供一种系统日志记录方法,通过给出判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签的具体路径,进一步明确了确定面向切面的标签的具体方式,有力的支持了后续在主线程中启动从线程进而获取系统日志的过程,提升了业务流程的执行效率,降低了主线程业务流程和系统日志之间程序的耦合度。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录方法,所述在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数,包括:
在所述从线程上,通过面向切面的编程思想或控制反转的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数。
在本实施例中,面向切面的编程思想对应的英文表达为Aspect OrientedProgramming,简称AOP,是指通过预编译的方式和运行期间动态代理实现程序功能的统一维护的一种技术,同时也是面向对象编程(OOP)的延续,是软件开发中的一种全新的编程思想。控制反转技术对应的英文表达为Inversion Of Control,简称IOC,是面向对象编程中的一种设计原则,可以用来降低计算机代码之间的耦合度。其中,最常见的方式为依赖注入(Dependency Injection)和依赖查找(Dependency Lookup),通过控制反转,对象在被创建时,有一个调控系统内所有对象的外界实体,将外界实体所依赖的对象引用传递给外界实体自身,即依赖被注入到对象中。
在本实施例中,在启动的从线程上,采用面向切面的编程思想或控制反转的方式过滤出服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数。
本发明提供一种系统日志记录方法,通过明确获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数的过滤方式是面向切面的编程思想或控制反转的方式,有力的支持了后续在从线程中获取系统日志的过程,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录方法,所述根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息,包括:
通过反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息。
在本实施例中,反射对应的英文表述是Reflection,是一种面向中间语言的编程方式,通过反射可以直接操作对象内部的属性和方法,而不需要关注对象具体的业务逻辑。参数的标识信息是指参数的唯一标识,优选为参数的ID值。参数当前的属性状态信息是指参数当前的各个属性的值。
在本实施例中,通过反射(Reflection)的方式还原服务调用目标操作时所传递的参数,基于还原的参数,得到参数当前的各个属性的值以及参数的ID值。
本发明提供一种系统日志记录方法,通过明确以反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息,有力的支持了后续获取系统日志的过程,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录方法,所述根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,包括:
从消息队列中获取服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息;
在服务调用所述目标操作的方法为新增的情况下,确定所述参数的标识信息以及所述参数当前的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为删除的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,确定所述参数原有的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为修改的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,将所述参数当前的属性状态信息与所述参数原有的属性状态信息进行比较,将属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息确定为需要记录到系统日志中的信息。
在本实施例中,消息队列是在消息的传输过程中保存消息的容器,也是一个单线程的永真循环服务,从消息队列中取出每一个需要记录参数变化状态的消息包,并从消息包中取出参数,并以参数的ID值获取参数变化前的各属性的状态。参数原有的属性状态信息是在进行修改或删除操作时,通过参数的ID值直接从修改或删除前的对象库中获取。
在本实施例中,从消息队列中获取服务调用所述目标操作的方法、参数的标识信息以及参数当前的属性状态信息。基于服务调用所述目标操作的不同方法,确定需要记录在系统日志中的不同信息。
具体包括:在调用后台目标对象进行数据修改时,目标对象以包含ID属性的参数的形式传递,如果参数只包含ID属性且没有其他属性,此时服务调用所述目标操作的方法为目标对象的删除操作,如果包含其他参数,此时服务调用所述目标操作的方法为目标对象的新增或修改操作。基于上述条件,以如下的伪代码(以下代码以C#为例,Java类似)为例:
首先根据ID值从原修改或删除前的目标对象数据中获取原有的目标对象的属性,假设目标对象如下:
Figure BDA0003518133160000121
基于上述目标对象的特性,通过CPersionInfo表根据目标对象即参数的ID值,得到参数的原有各个属性,在原表中除参数的ID、Name、Sex属性外,还包括参数的Department属性。
如果原表中没有对应的ID的原数据,服务调用所述目标操作的方法就是一条新增目标对象的记录,需要确定记录到系统日志中的信息为参数的标识信息以及参数当前的属性状态信息,把参数的ID、Name、Sex等属性的新值信息记录到系统日志中;如果原表中有对应的ID的原数据,服务调用所述目标操作的方法就是一条修改目标对象的记录,需要确定记录到系统日志中的信息为属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息,将Name、Sex等属性与原来的属性分别进行比对,如果其中的任何一个属性有变化,则记录其中的变化值,没有变化,不记录;如果传入的对象只有ID值,没有其他属性,服务调用所述目标操作的方法就是一条删除目标对象的记录,需要确定记录到系统日志中的信息为参数原有的属性状态信息,把原有对象的所有属性(包括Department的值)全部作为变化前的值记入系统日志。
在上述实施例的基础上,服务调用所述目标操作的方法为修改时,将对应信息记入系统日志的具体步骤包括:
1、通过反射获取目标对象的新值:
Figure BDA0003518133160000131
2、从对应的表中获取原目标对象oldo=getobject(ta,Id的value);
3、完成属性的比对(此处代码相对简单,不再具体赘述);
4、将比对结果记入系统日志(此处代码相对简单,不再具体赘述)。
另外,在服务调用所述目标操作的方法为查询的情况下,确定需要记录到系统日志中的信息为查询时间,不需要记录参数的信息。在服务调用所述目标操作的方法为系统回调的情况下,若参数的属性状态信息发生了变化,确定需要记录到系统日志中的信息为属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息;若参数的属性状态信息没有发生变化,确定需要记录到系统日志中的信息为系统回调事件及系统回调事件发生的时间。
本发明提供一种系统日志记录方法,通过利用消息队列,并基于服务调用所述目标操作的不同方法确定需要记录在系统日志中的不同信息,有力的支持了获取系统日志的过程,记录了完整的参数变化的状态,突破了原有的系统日志仅记录操作过程,不记录操作完整状态变化情况的局限性。
下面对本发明提供的系统日志记录装置进行描述,下文描述的系统日志记录装置与上文描述的系统日志记录方法可相互对应参照。
图2为本发明提供的系统日志记录装置的结构图,如图2所示,本发明提供的系统日志记录装置,包括:
面向切面的标签确定模块210,用于在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
从线程启动模块220,用于基于所述面向切面的标签,启动区别于所述主线程的从线程;
方法及参数获取模块230,用于在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
参数信息确定模块240,用于根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
系统日志获取模块250,用于根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
本发明提供一种系统日志记录装置,通过设置面向切面的标签确定模块、从线程启动模块、方法及参数获取模块、参数信息确定模块和系统日志获取模块,实现了在主线程中启动从线程来获取系统日志,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录装置,所述面向切面的标签确定模块还包括:
业务流程确定单元,用于确定待处理业务流程;
面向切面的标签判断单元,用于在主线程上通过服务调用的方式执行所述待处理业务流程中的目标操作的过程中,判断所述目标操作是否存在面向切面的标签;
面向切面的标签确定单元,用于在存在面向切面的标签的情况下,确定所述目标操作所对应的面向切面的标签。
本发明提供一种系统日志记录装置,通过设置业务流程确定单元、面向切面的标签判断单元和面向切面的标签确定单元,给出确定目标操作所对应的面向切面的标签的具体过程,有力的支持了后续在主线程中启动从线程进而获取系统日志的过程,进而提升业务流程的执行效率,并降低主线程业务流程和系统日志之间程序的耦合度。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录装置,所述面向切面的标签判断单元还包括:
面向切面的标签判断子单元,用于判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签;
面向切面的标签确定子单元,用于在存在采用Java语言中的注解所描述的面向切面的标签,或者存在采用.net语言或C#语言中的特性所描述的面向切面的标签的情况下,确定所述目标操作存在面向切面的标签。
本发明提供一种系统日志记录装置,通过设置面向切面的标签判断子单元和面向切面的标签确定子单元,给出判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签的具体路径,进一步明确了确定面向切面的标签的具体方式,有力的支持了后续在主线程中启动从线程进而获取系统日志的过程,提升了业务流程的执行效率,降低了主线程业务流程和系统日志之间程序的耦合度。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录装置,所述方法及参数获取模块还包括:
方法及参数获取单元,用于在所述从线程上,通过面向切面的编程思想或控制反转的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数。
本发明提供一种系统日志记录装置,通过设置方法及参数获取单元,明确获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数的过滤方式是面向切面的编程思想或控制反转的方式,有力的支持了后续在从线程中获取系统日志的过程,简化了业务逻辑实现的编程代码,提升了业务系统开发的实现效率,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录装置,所述参数信息确定模块还包括:
参数信息确定单元,用于通过反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息。
本发明提供一种系统日志记录装置,通过设置参数信息确定单元,明确以反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息,有力的支持了后续获取系统日志的过程,降低了开发和实施成本。
基于上述任一实施例,在本实施例中,根据本发明提供的系统日志记录装置,所述系统日志获取模块还包括:
方法及参数信息提取单元,用于从消息队列中获取服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息;
新增单元,用于在服务调用所述目标操作的方法为新增的情况下,确定所述参数的标识信息以及所述参数当前的属性状态信息为需要记录到系统日志中的信息;
删除单元,用于在服务调用所述目标操作的方法为删除的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,确定所述参数原有的属性状态信息为需要记录到系统日志中的信息;
修改单元,用于在服务调用所述目标操作的方法为修改的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,将所述参数当前的属性状态信息与所述参数原有的属性状态信息进行比较,将属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息确定为需要记录到系统日志中的信息。
本发明提供一种系统日志记录装置,通过设置方法及参数信息提取单元、新增单元、删除单元和修改单元,利用消息队列,并基于服务调用所述目标操作的不同方法确定需要记录在系统日志中的不同信息,有力的支持了获取系统日志的过程,记录了完整的参数变化的状态,突破了原有的系统日志仅记录操作过程,不记录操作完整状态变化情况的局限性。
另一方面,本发明还提供一种电子设备,图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括处理器310、通信总线340、存储器330、通信接口320以及存储在所述存储器330上并可在所述处理器310上运行的计算机程序,其中,处理器310、通信接口320、存储器330通过通信总线340完成相互间的通信,处理器310可以调用存储器330中的逻辑指令,以执行所述系统日志记录方法,该方法包括:
在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
基于所述面向切面的标签,启动区别于所述主线程的从线程;
在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
又一方面,本发明还一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时,可以实现所述系统日志记录方法的步骤,该方法包括:
在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
基于所述面向切面的标签,启动区别于所述主线程的从线程;
在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
最后,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够实现所述系统日志记录方法,该方法包括:
在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
基于所述面向切面的标签,启动区别于所述主线程的从线程;
在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (10)

1.一种系统日志记录方法,其特征在于,包括:
在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
基于所述面向切面的标签,启动区别于所述主线程的从线程;
在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
2.根据权利要求1所述的系统日志记录方法,其特征在于,所述在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签,包括:
确定待处理业务流程;
在主线程上通过服务调用的方式执行所述待处理业务流程中的目标操作的过程中,判断所述目标操作是否存在面向切面的标签;
在存在面向切面的标签的情况下,确定所述目标操作所对应的面向切面的标签。
3.根据权利要求2所述的系统日志记录方法,其特征在于,所述判断所述目标操作是否存在面向切面的标签,包括:
判断所述目标操作所对应的代码中是否存在采用Java语言中的注解所描述的面向切面的标签,或者是否存在采用.net语言或C#语言中的特性所描述的面向切面的标签;
在存在采用Java语言中的注解所描述的面向切面的标签,或者存在采用.net语言或C#语言中的特性所描述的面向切面的标签的情况下,确定所述目标操作存在面向切面的标签。
4.根据权利要求1所述的系统日志记录方法,其特征在于,所述在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数,包括:
在所述从线程上,通过面向切面的编程思想或控制反转的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数。
5.根据权利要求1所述的系统日志记录方法,其特征在于,所述根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息,包括:
通过反射的方式还原所述服务调用所述目标操作时所传递的参数,得到所述参数当前的属性状态信息以及参数的标识信息。
6.根据权利要求1所述的系统日志记录方法,其特征在于,所述根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,包括:
从消息队列中获取服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息;
在服务调用所述目标操作的方法为新增的情况下,确定所述参数的标识信息以及所述参数当前的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为删除的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,确定所述参数原有的属性状态信息为需要记录到系统日志中的信息;
在服务调用所述目标操作的方法为修改的情况下,根据所述参数的标识信息获取所述参数原有的属性状态信息,将所述参数当前的属性状态信息与所述参数原有的属性状态信息进行比较,将属性状态信息发生变化的参数的原有属性状态信息与当前属性状态信息确定为需要记录到系统日志中的信息。
7.一种系统日志记录装置,其特征在于,包括:
面向切面的标签确定模块,用于在主线程上以服务调用的方式执行待处理业务流程中的目标操作时,确定存在面向切面的标签;
从线程启动模块,用于基于所述面向切面的标签,启动区别于所述主线程的从线程;
方法及参数获取模块,用于在所述从线程上,通过过滤的方式获取服务调用所述目标操作的方法以及服务调用所述目标操作时所传递的参数;
参数信息确定模块,用于根据所述服务调用所述目标操作时所传递的参数,确定所述参数的标识信息以及所述参数当前的属性状态信息;
系统日志获取模块,用于根据服务调用所述目标操作的方法、所述参数的标识信息以及所述参数当前的属性状态信息,确定需要记录到系统日志中的信息,并将所确定的信息记录到系统日志中。
8.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至6任一项所述系统日志记录方法的步骤。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述系统日志记录方法的步骤。
10.一种计算机程序产品,所述计算机程序产品包括计算机可执行指令,其特征在于,所述指令在被执行时用于实现如权利要求1至6任一项所述系统日志记录方法的步骤。
CN202210171285.XA 2022-02-24 2022-02-24 一种系统日志记录方法、装置、电子设备与存储介质 Pending CN114579212A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210171285.XA CN114579212A (zh) 2022-02-24 2022-02-24 一种系统日志记录方法、装置、电子设备与存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210171285.XA CN114579212A (zh) 2022-02-24 2022-02-24 一种系统日志记录方法、装置、电子设备与存储介质

Publications (1)

Publication Number Publication Date
CN114579212A true CN114579212A (zh) 2022-06-03

Family

ID=81774933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210171285.XA Pending CN114579212A (zh) 2022-02-24 2022-02-24 一种系统日志记录方法、装置、电子设备与存储介质

Country Status (1)

Country Link
CN (1) CN114579212A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217044A1 (en) * 2002-05-15 2003-11-20 International Business Machines Corporation Method and apparatus of automatic method signature adaptation for dynamic web service invocation
CN102810057A (zh) * 2011-05-30 2012-12-05 中国银联股份有限公司 一种记录日志的方法
CN105912455A (zh) * 2016-04-27 2016-08-31 努比亚技术有限公司 业务执行方法及服务器
CN111708749A (zh) * 2020-07-24 2020-09-25 深圳市富之富信息科技有限公司 操作日志记录方法、装置、计算机设备及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030217044A1 (en) * 2002-05-15 2003-11-20 International Business Machines Corporation Method and apparatus of automatic method signature adaptation for dynamic web service invocation
CN102810057A (zh) * 2011-05-30 2012-12-05 中国银联股份有限公司 一种记录日志的方法
CN105912455A (zh) * 2016-04-27 2016-08-31 努比亚技术有限公司 业务执行方法及服务器
CN111708749A (zh) * 2020-07-24 2020-09-25 深圳市富之富信息科技有限公司 操作日志记录方法、装置、计算机设备及存储介质

Similar Documents

Publication Publication Date Title
CN111984561B (zh) 一种bmc的ipmi命令处理方法、系统、设备以及介质
US8650288B2 (en) Runtime usage analysis for a distributed policy enforcement system
CN110489310B (zh) 一种记录用户操作的方法、装置、存储介质及计算机设备
CN111427701A (zh) 一种工作流引擎系统和业务处理方法
CN111064626B (zh) 配置更新方法、装置、服务器及可读存储介质
CN112306979B (zh) 基于消息队列的日志信息处理方法、装置及可读介质
CN112506854B (zh) 页面模板文件的存储和页面生成方法、装置、设备及介质
CN110764894A (zh) 一种定时任务管理方法、装置、设备及存储介质
US6961940B2 (en) Dynamically adapting events to capabilities of a management system
CN115329170A (zh) 网页抓取方法、装置、设备以及存储介质
CN110881224B (zh) 一种网络长连接方法、装置、设备及存储介质
US20030055965A1 (en) User-defined units of context in a distributed computer environment
CN110930253A (zh) 智能合约内部主键生成方法、装置、计算机设备及存储介质
CN113645260A (zh) 业务重试方法、装置、存储介质及电子设备
CN111176987A (zh) 前端日志统一输出的方法、装置、计算机设备及存储介质
US7752504B2 (en) System diagnostics with dynamic contextual information of events
CN114579212A (zh) 一种系统日志记录方法、装置、电子设备与存储介质
CN113760487B (zh) 一种业务处理方法和装置
CN107632893B (zh) 消息队列处理方法及装置
CN114327404A (zh) 一种文件处理方法、装置、电子设备及计算机可读介质
US10044728B1 (en) Endpoint segregation to prevent scripting attacks
CN114422358A (zh) Api网关配置更新方法及设备
CN116263717A (zh) 基于事件的订单业务处理方法及装置
CN112905273A (zh) 一种服务调用方法和装置
CN113626001A (zh) 一种基于脚本的api动态编排方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20220603

RJ01 Rejection of invention patent application after publication