用于软件系统的日志数据跨语言自动记录方法与流程

文档序号:37416845发布日期:2024-03-25 19:04阅读:9来源:国知局
用于软件系统的日志数据跨语言自动记录方法与流程

本发明涉及计算机软件,尤其涉及用于软件系统的日志数据跨语言自动记录方法。


背景技术:

1、随着信息技术的迅速发展,软件系统在各行各业中的应用日益广泛。在软件系统的运行过程中,日志记录是一个重要环节,它不仅有助于监控系统状态和行为,还是分析和解决软件问题的关键。传统的日志记录方法主要依赖于特定的编程语言或框架,这限制了日志记录的灵活性和适用性。例如,当软件系统跨越多种编程语言或平台时,传统的日志记录方法可能无法有效地协同工作,从而导致日志信息的不完整或丢失。

2、当前,多数主流开发环境采用面向切面编程(aop)技术来实现日志记录。这种方法主要在前端用户界面(ui)触发后台服务时介入,对事件动作进行监控,从而捕获和记录系统调用行为。生成的日志随后被持久化到文件系统或数据库中。虽然这些方法在特定场景下有效,但它们往往作为孤立的解决方案存在,缺乏足够的通用性和灵活性,难以满足跨平台和多语言环境的需求。

3、此外,这些传统的日志记录方法通常涉及较高的实现成本和复杂的实现路径,给开发者带来了较高的学习成本。并且这些方法单独存在,存在不具有通用性,不能实现跨平台语言,往往还缺乏支持第三方或终端用户进行有效二次开发的能力,导致在不同业务场景下需要对日志监视器进行重复修改和定制,从而增加了维护成本和降低了系统的可维护性。此外,这些方法往往缺乏支持自定义配置的灵活性,限制了其在各种复杂环境下的适应能力。


技术实现思路

1、针对以上问题,迫切需要一种在软件的日常运行中跨语言自动记录日志的方法和系统,以提高日志记录的灵活性和有效性,同时降低系统维护的复杂性。

2、为了实现上述技术目的,本发明提供的技术方案包括:

3、用于软件系统的日志数据跨语言自动记录方法,包括步骤:

4、s1、注册监听器以监听软件系统运行过程中的事件动作;

5、s2、引入log4cplus库以将所述软件系统的事件动作记录为日志数据,并输出为动态链接库文件;

6、s3、利用c++语言注册通用调用接口,通过所述通用调用接口调用动态链接库文件以实现对日志数据的查看。

7、在一些较优的实施例中,所述监听器根据日志级别对软件系统事件动作进行不同类型的监听。

8、在一些较优的实施例中,步骤s2中所述引入log4cplus库以将所述软件系统的事件动作记录为日志数据的写入方法包括:

9、s201、调用log4cplus::initialize()初始化日志系统;

10、s202、根据日志级别数量创建对应的日志记录器;

11、s203、使用日志记录器记录日志数据。

12、在一些较优的实施例中,步骤s3中所述利用c++语言注册通用调用接口的方法包括:

13、s301、确定动态链接库文件的文件路径与文件名,并记录动态链接库文件的绝对路径;

14、s302、创建与动态链接库文件中函数的对应关系和调用链路的接口定义;

15、s303、创建目标语言与c++语言的绑定或声明;

16、s304、实现至少一个使用所述接口定义的封装层,用以将高级语言的调用转换为动态链接库文件函数的调用。

17、在一些较优的实施例中,步骤s3中所述对日志数据的查看方法包括:

18、在log4cplus.properties中配置consoleappender的布局类型、输出格式和对应的日志级别,用以将日志数据输出到控制台;

19、或,在log4cplus.properties中配置rollingfileappender的日志文件名称、最大文件大小、备份文件数量、输出格式和对应的日志级别,用以将日志数据输出到文件中以便稍后查看。

20、在一些较优的实施例中,还包括用于定义日志输出目的地的二次开发方法:通过实现自定义的 appender 类来将日志输出到目标位置。

21、在一些较优的实施例中,还包括用于定义日志输出格式的二次开发方法:通过实现自定义的 layout 类来调整日志输出的格式。

22、在一些较优的实施例中,还包括用于在运行时动态配置日志的二次开发方法:通过读取新的配置并重新配置 log4cplus,以实现动态配置日志。

23、在一些较优的实施例中,还包括用于控制被记录的事件动作信息的二次开发方法:通过将自定义的过滤逻辑,实现自定义的包含目标过滤逻辑的过滤器,并将所述过滤器添加到日志记录器中。

24、在一些较优的实施例中,还包括用于追踪日志中软件系统运行过程产生的事件动作的二次开发方法:通过使用mdc 工具在每个线程中保存上下文信息,通过使用ndc在堆栈中保存上下文信息,以实现在日志中附加上下文信息。

25、有益效果

26、本发明能够跨多种编程语言自动记录日志,有效解决了传统日志系统只能在单一语言环境下运行的限制,能够广泛适用于多语言编程环境,提高了系统的通用性和适应性;提供了日志级别的灵活管理方法,允许用户根据需要调整日志记录的详细程度,可以更加精准地满足不同的监控和调试需求;显著降低日志记录系统维护的复杂性和成本,提高了日志记录的效率和灵活性,还降低了系统维护的复杂性,从而为软件开发和维护提供了有力的技术支持;同时提供强大的二次开发接口,允许根据不同项目的具体需求进行定制。



技术特征:

1.用于软件系统的日志数据跨语言自动记录方法,其特征在于,包括步骤:

2.如权利要求1所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于:所述监听器根据日志级别对软件系统事件动作进行不同类型的监听。

3.如权利要求2所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,步骤s2中所述引入log4cplus库以将所述软件系统的事件动作记录为日志数据的写入方法包括:

4.如权利要求2所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,步骤s3中所述利用c++语言注册通用调用接口的方法包括:

5.如权利要求2所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,步骤s3中所述对日志数据的查看方法包括:

6.如权利要求1-5任一项所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,还包括用于定义日志输出目的地的二次开发方法:通过实现自定义的 appender类来将日志输出到目标位置。

7.如权利要求1-5任一项所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,还包括用于定义日志输出格式的二次开发方法:通过实现自定义的 layout 类来调整日志输出的格式。

8.如权利要求1-5任一项所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,还包括用于在运行时动态配置日志的二次开发方法:通过读取新的配置并重新配置 log4cplus,以实现动态配置日志。

9.如权利要求1-5任一项所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,还包括用于控制被记录的事件动作信息的二次开发方法:通过将自定义的过滤逻辑,实现自定义的包含目标过滤逻辑的过滤器,并将所述过滤器添加到日志记录器中。

10.如权利要求1-5任一项所述的用于软件系统的日志数据跨语言自动记录方法,其特征在于,还包括用于追踪日志中软件系统运行过程产生的事件动作的二次开发方法:通过使用mdc 工具在每个线程中保存上下文信息,通过使用ndc在堆栈中保存上下文信息,以实现在日志中附加上下文信息。


技术总结
本发明公开了用于软件系统的日志数据跨语言自动记录方法,包括步骤:注册监听器以监听软件系统运行过程中的事件动作;引入log4cplus库以将所述软件系统的事件动作记录为日志数据,并输出为动态链接库文件和静态链接库文件;利用C++语言注册通用调用接口,通过所述通用调用接口调用动态链接库文件以实现对日志数据的查看。本发明能够广泛适用于多语言编程环境,提高了系统的通用性和适应性;显著降低日志记录系统维护的复杂性和成本,提高了日志记录的效率和灵活性,还降低了系统维护的复杂性,从而为软件开发和维护提供了有力的技术支持。同时提供强大的二次开发接口,允许根据不同项目的具体需求进行定制。

技术研发人员:孙梓轩,罗玉波,喻可伟,胡敏,余山海,何东升,李奎
受保护的技术使用者:成都九洲电子信息系统股份有限公司
技术研发日:
技术公布日:2024/3/24
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1