CN105373466A - 一种日志处理方法与设备 - Google Patents

一种日志处理方法与设备 Download PDF

Info

Publication number
CN105373466A
CN105373466A CN201410323810.0A CN201410323810A CN105373466A CN 105373466 A CN105373466 A CN 105373466A CN 201410323810 A CN201410323810 A CN 201410323810A CN 105373466 A CN105373466 A CN 105373466A
Authority
CN
China
Prior art keywords
daily record
class
log
correlation module
shared pool
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.)
Granted
Application number
CN201410323810.0A
Other languages
English (en)
Other versions
CN105373466B (zh
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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding 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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Priority to CN201410323810.0A priority Critical patent/CN105373466B/zh
Publication of CN105373466A publication Critical patent/CN105373466A/zh
Application granted granted Critical
Publication of CN105373466B publication Critical patent/CN105373466B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本申请的目的是提供一种日志处理方法与设备。与现有技术相比,本申请所述的日志处理设备根据日志相关请求确定待执行的日志相关模块,再通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应;再将所述日志相关响应提供至所述日志相关请求所对应的目标应用。由此,本申请实现了将各应用的日志处理过程统一予以管理的目的。

Description

一种日志处理方法与设备
技术领域
本申请涉及计算机领域,尤其涉及一种用于日志处理的技术。
背景技术
随着电子互联网应用规模的增加,互联网应用的形式逐步增多,其日志系统越来越庞大。例如,一些大的互联网公司围绕自己的客户开发了多种应用程序,每个应用程序都对应自己的日志处理系统。由于开发各应用程序的团队不相同,所使用的日志处理方式也各不相同。这导致对接到同一平台的各个应用程序的日志无法统一管理和共享日志。这使得公司内部的日志管理越来越冗余,人力成本越来越高。如何高效的处理各应用程序的日志是本申请所要解决的问题。
发明内容
本申请的目的是提供一种日志处理方法与设备。
根据本申请的一个方面,提供了一种日志处理方法,其中,该方法包括:
a根据日志相关请求确定待执行的日志相关模块;
b通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应;
c将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
根据本申请的另一方面,还提供了一种日志处理设备,其中,该设备包括:
第一装置,用于根据日志相关请求确定待执行的日志相关模块;
第二装置,用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应;
第三装置,用于将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
与现有技术相比,本申请通过将各目标应用所使用的日志实现类预设在隔离容器中,并根据各目标应用的日志相关请求调用相应的日志实现类来执行,能够统一各目标应用的日志处理过程,实现各目标应用的日志统一管理;另外,针对已经开发完成并上线运行的目标应用,通过将第二日志格式桥接到第一日志格式的方式,将已有的、与统一日志格式不兼容的日志格式进行转化,以使目标应用通过升级的方式实现日志的统一处理;更近一步地,特别针对桥接处理的方式,本申请采用对桥接进行验证,以确保各目标应用的日志能够统一处理。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种日志处理设备示意图;
图2示出根据本申请一个优选实施例的一种日志处理设备示意图;
图3示出根据本申请另一个优选实施例的一种日志处理设备示意图;
图4示出根据本申请另一个方面的一种日志处理方法流程图;
图5示出根据本申请一个优选实施例的一种日志处理方法流程图;
图6示出根据本申请另一个优选实施例的一种日志处理方法流程图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。
如图1所示,本申请提供一种日志处理设备。其中,所述日志处理设备1包括:第一装置11、第二装置12和第三装置13。具体地,所述第一装置11用于根据日志相关请求确定待执行的日志相关模块。所述第二装置12用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。所述第三装置13用于将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
在此,所述日志处理设备1可以是网络主机、单个网络服务器、多个网络服务器集或多个服务器中的之一或组合。本领域技术人员应能理解上述网络设备仅为举例,其他现有的或今后可能出现的网络设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
具体地,与所述日志处理设备1通信的终端设备通过http、https或预设的程序接口等约定的通信方式将日志相关请求发送至所述日志处理设备1,则所述第一装置11通过协议解析该日志相关请求,并按照预设的对应关系得到对应的待执行的日志相关模块。
在此,所述日志相关请求包括任何与日志相关的请求。优选地,包括但不限于:日志访问请求。例如,所述日志访问请求包括但不限于:应用程序利用统一日志框架中的模块(Module)所发出的日志访问请求等。所述日志相关请求还包括:涉及日志处理的应用访问请求。例如,所述涉及日志处理的应用访问请求包括但不限于:由客户端软件所发出的日志访问请求、由网站所发出的日志访问请求、由服务端后台运行程序所发出的日志访问请求等。
例如,所述日志相关请求包括:日志来源、日志请求内容等。其中,所述日志来源包括但不限于:网站、客户端软件、服务端软件等。日志请求内容包括任何要记录或要调取的日志的内容。其包括但不限于:请求调取某一时间段内客户端软件运行异常的日志,将网站、客户端软件或服务端软件运行时所产生的异常写入日志中等。
例如,用户在使用终端设备中的某聊天软件时,该聊天软件运行出现异常而准备关闭,则所述聊天软件在关闭前将包含所述聊天软件日志来源和聊天内容的日志相关请求发送至所述日志处理设备1。又如,用户浏览某网站时,该网站每天将包含网站日志来源和网站运行情况的日志相关请求发送至所述日志处理设备1。再如,服务端的后台监控软件将包含服务端监控日志来源和获取某一时段的网站日志的日志相关请求发送至所述日志处理设备1。
在此,所述日志处理设备1中的第一装置11先按照预设的协议解析所述日志相关请求,以得到日志来源和日志内容,再根据预设的日志来源和日志相关模块的对应关系得到相应该日志相关请求的待执行的日志相关模块。
本领域技术人员应该理解,上述日志相关请求仅为举例。其他现有的或今后可能出现的日志相关请求所包含的信息如可适用于本申请实施例,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,某购物平台的网站、客户端购物软件、聊天软件以及服务端的购物服务处理软件均与所述日志处理设备1进行数据连接。其中,所述网站和购物服务处理软件运行在服务端,所述日志处理设备1可以与所述服务端共用一个网络设备,也可以为单独的网络设备。所述客户端购物软件和聊天软件运行在终端设备。其中,所述终端设备包括但不限于:个人电脑、笔记本、手机、平板电脑等。所述日志处理设备1中的所述第一装置11中预设有网站日志来源与网站日志相关模块相对应、客户端购物软件日志来源与客户端购物软件日志相关模块相对应、购物处理软件日志来源与购物处理软件日志相关模块相对应。当所述购物平台的网站将网站日志来源和网站运行情况包含在日志相关请求A1中,并利用程序接口发送给所述日志处理设备1时,所述第一装置11接收并解析出来自网站的日志相关请求A1的日志来源和日志内容时,根据预设的各日志来源和日志相关模块的对应关系,确定所对应的网站日志相关模块。
又如,当所述购物平台中的购物处理软件产生一个与银联接口连接异常的日志信息时,将该异常的日志信息和购物处理软件日志来源包含在日志相关请求A2中,并发送给所述日志处理设备1。同样,当所述第一装置11接收并解析出来自购物处理软件的日志相关请求A2的日志来源和日志内容时,根据预设的各日志来源和日志相关模块的对应关系,确定所对应的购物处理日志相关模块。
本领域技术人员应该理解,所述第一装置11与网站、服务端、客户端等设备之间可以是通过网络进行通信连接,也可以是通过程序接口调用的方式进行通信。
本领域技术人员还应能理解上述根据日志相关请求确定待执行的日志相关模块的方式仅为举例,其他现有的或今后可能出现的根据日志相关请求确定待执行的日志相关模块的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第二装置12通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
具体地,所述第一装置11所得到的日志相关模块被安置在对应的隔离容器中,该隔离容器所对应的类共享池中存储有日志相关模块所对应的日志实现类。当所述第一装置11将所得到的日志相关模块提供给所述第二装置12时,所述第二装置12根据预先在所述类共享池中建立的日志相关模块和日志实现类的对应关系,对所述日志相关模块所对应的日志实现类进行调用,以执行所述日志相关模块,由此获得与所述日志相关请求相对应的日志相关响应。在此,本领域技术人员应能理解,所述类共享池可包含于隔离容器,也可独立于该隔离容器、通过网络以供该隔离容器访问调用。
在此,本领域技术人员应能理解,所述隔离容器是一种容器,各日志相关模块以模块(module)的形式运行在该容器中,从而将架构中的类共享池与应用程序相隔离。例如,如图2所示,在java中,所述隔离容器以模块(module)类的形式运行在各应用程序中,或运行于应用程序之外、但可经由网络被访问,以达到将应用程序和类共享池相隔离的目的。又如,为了解决庞大的二方包(如内部消息客户端,远程调用框架)的快速、便捷升级以及二方包、应用对三方包(如log4j,hessian等)的依赖冲突问题,每一个二方包以Module的形式运行在隔离容器内部,各Module之间通过类加载模块(例如ClassLoader)相互隔离,因此Module之间依赖的二方包、三方包的作用域仅限当前ClassLoader内部,互不影响。
本领域技术人员应该理解,上述隔离容器的描述仅为举例。其他现有的或今后可能出现的架构中的将类共享池与应用程序相隔离的技术如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在此,所述类共享池中包含但不限于:logback、log4jAPI及相关组件类。其中,所述相关组件类包括但不限于:logback和log4jAPI之间的转换类等。
需要说明的是,每个应用程序、网站或服务端的处理程序可以各自对应单独的隔离容器,也可以公用一个隔离容器。每个日志相关模块可以在所属的隔离容器中的类共享池中得到所对应的日志实现类。
在此,所述日志处理设备1预设了每个日志相关模块与隔离容器的对应关系。各日志相关模块可在所对应的隔离容器中的类共享池中找到所要调用的日志实现类。所述日志相关模块与隔离容器的对应关系可由技术人员手工或利用软件升级等手段预先配置在所述日志处理设备1中,以便所述第一装置11、第二装置12和第三装置13在运行时使用。
例如,所述第二装置12从预先配置的隔离容器所对应的类共享池中得到与所述购物处理日志相关模块相对应的购物处理日志实现类,并根据购物处理日志相关请求所提供的日志内容(如异常内容、异常时间、异常类型等)执行所述购物处理日志实现类,以记录一次购物处理的异常日志,并将执行后的异常日志作为日志相关响应。
又如,所述第二装置12从预先配置的隔离容器所对应的类共享池中得到与所述网页搜索日志相关模块相对应的网页搜索日志实现类,并根据网页搜索日志相关请求所提供的日志内容(如用户名、搜索内容等)执行所述网页搜索日志实现类,以记录一次网页搜索的异常日志,并将用于表示日志记录成功的布尔值作为日志相关响应。
本领域技术人员应该理解,上述日志相关响应的描述仅为举例。其他现有的或今后可能出现的其他日志相关响应的技术如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述第三装置13将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
具体地,所述第三装置13可视为所述日志处理设备1的通信部分,其通过网卡或软件接口等方式将所述日志相关响应返回至发送所述日志相关请求的目标应用。其中,所述目标应用包括可供用户发起日志相关请求并接收基于该日志相关请求所返回的日志相关响应的应用系统或应用模块;所述目标应用包括但不限于网站、客户端软件、购物处理软件等,例如在购物网站的已登录页面中发起访问用户的历史订单信息的请求,或者通过浏览器发起访问特定日志信息的请求。
图3示出根据本申请一个优选实施例的一种日志处理设备1。其包括:第一装置11、第二装置12、第三装置13和第四装置14。具体地,第一装置11用于根据日志相关请求确定待执行的日志相关模块。第二装置12用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。第三装置13用于将所述日志相关响应提供至所述日志相关请求所对应的目标应用。第四装置14用于通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以建立或更新所述类共享池。其中,所述第一装置11、第二装置12和第三装置13与图1中第一装置11、第二装置12和第三装置13各自的内容相同或基本相同,为简明起见,故在此不再赘述,并以引用的方式包含于此。
具体地,所述日志处理设备1在运行时,由其内部的第一装置11通过解析所述日志相关请求来确定所对应的日志相关模块,再由所述第二装置12将所述第一装置11解析出的各日志内容代入所述日志相关模块,并指令所述第二装置12执行所代入的日志相关模块,在执行过程中,所述第二装置12调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,来实现相应日志的处理,以得到与所述日志相关请求所对应的日志相关响应,并由所述第三装置13将所得到的日志相关响应反馈至目标应用。
优选地,当所述类共享池和日志实现类需要建立时,所述日志处理设备1中的第四装置14通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以建立所述类共享池。或者,当该隔离容器中需要添加新的日志相关模块或者其中已有的日志相关模块需要被升级更新时,所述日志处理设备1中的第四装置14通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以更新所述类共享池。
在此,所述第四装置14对所述隔离容器初始化处理方式包括但不限于:1)对所述隔离容器中的统一日志模块初始化处理。例如,将所述统一日志模块中的jcl-over-slf4j.jar、slf4j-api.jar、logback-classic.jar、logback-core.jar等jar包导入所述类共享池中。其中,所述第四装置14对所述隔离容器中的统一日志模块初始化处理的方式包括但不限于:a)将对应第一日志格式的日志实现类导入所述类共享池。例如,将logback必须要依赖的jar包导入所述类共享池。b)将用于桥接第二日志格式至所述第一日志格式的日志实现类导入所述类共享池。其中,当所述日志处理设备1为多个目标应用提供日志服务时,由于各目标应用所对应的日志相关模块的版本各不相同,需要向各日志相关模块提供统一的日志服务,则所述第四装置14将各日志相关模块所使用的第二日志格式桥接到所述第一日志格式。所述第二日志格式包括但不限于log4j等。所述第一日志格式包括但不限于logback等。例如,对于一些开源软件所依赖的日志门面桥接到指定的类中,即将log4j配置转化为logback并初始化logback,并将log4jAPI的桥接自检等逻辑予以启动。
2)为了确保所述第二日志格式与第一日志格式正确桥接,所述第四装置14还在初始化所述隔离容器时对所述用于桥接第二日志格式至第一日志格式的日志实现类进行验证。例如,所述第四装置14将log4j配置转化为logback并初始化logback,同时,对统一日志进行自检,以确保桥接功能正常。
3)在完成所述统一日志模块初始化处理后,将所述隔离容器中其他日志模块中至少两个日志模块间共享的日志实现类导入所述类共享池。其中,所述其他日志模块中至少一个日志模块包括二方应用模块,以及所述二方应用模块所依赖的三方应用模块等。例如,二方包a1依赖二方包a2,则需要二方包a2需要提供Module之间的类共享机制,把二方包a2中各个Module及应用中需要共享使用的类都导出后放在类共享池中,以实现对二方包a1和二方包a2中的共享日志实现类的统一管理。更为优选地,所述类共享池中与所述日志相关模块所对应的日志实现类,相对所述日志相关模块所对应的模块路径中的日志实现类,优先被调用。继续前述关于二方包a1和a2的例子,当所述类共享池和二方包a1中均包含名称为s-log的日志实现类,则所述二方包优先调用所述类共享池中的s-log日志实现类,只有当所述类共享池中无s-log日志实现类时,所述二方包中的日志相关模块才会调用所述日志相关模块所对应的模块路径中的s-log日志实现类。
优选地,所述第四装置14在各目标应用启动前启动。
基于上述各优选方案,本申请的又一优选方案是:所述第二装置12还用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,以及所述日志相关模块所对应的模块路径中的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
具体地,所述第二装置12在执行所述日志相关模块时,可根据程序设计的规则,既调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,又调用所述日志相关模块所对应的模块路径中的日志实现类。例如,所述第二装置12在执行日志相关模块a1时,需要调用类共享池中的s-log日志实现类和所述日志相关模块a1路径下的p-log日志实现类,则所述隔离容器并不会阻止所述第二装置12来调用p-log日志实现类。
优选地,所述类共享池中与所述日志相关模块所对应的日志实现类,相对所述日志相关模块所对应的模块路径中的日志实现类,优先被调用。
例如,所述第二装置12在执行日志相关模块a2时,需要调用s-log日志实现类,而在所述类共享池中和所述日志相关模块a2的路径下均有名称为s-log的日志实现类,这时,所述第二装置12优先调用所述类共享池中的s-log日志实现类来执行所述日志相关模块a2,并得到相应的日志相关响应。
图4示出根据本申请另一个方面的日志处理设备实现日志处理方法的方法流程图。
所述日志处理方法包括:步骤S1、S2、S3。具体地,在步骤S1中,S2中,所述日志处理设备1通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。在步骤S3中,所述日志处理设备1将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
在此,所述日志处理设备1可以是网络主机、单个网络服务器、多个网络服务器集或多个服务器中的之一或组合。本领域技术人员应能理解上述网络设备仅为举例,其他现有的或今后可能出现的网络设备如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
具体地,与所述日志处理设备1通信的终端设备通过http、https或预设的程序接口等约定的通信方式将日志相关请求发送至所述日志处理设备1,则所述日志处理设备1通过协议解析该日志相关请求,并按照预设的对应关系得到对应的待执行的日志相关模块。
在此,所述日志相关请求包括任何与日志相关的请求。优选地,包括但不限于:日志访问请求。例如,所述日志访问请求包括但不限于:应用程序利用统一日志框架中的模块(Module)所发出的日志访问请求等。所述日志相关请求还包括:涉及日志处理的应用访问请求。例如,所述涉及日志处理的应用访问请求包括但不限于:由客户端软件所发出的日志访问请求、由网站所发出的日志访问请求、由服务端后台运行程序所发出的日志访问请求等。
例如,所述日志相关请求包括:日志来源、日志请求内容等。其中,所述日志来源包括但不限于:网站、客户端软件、服务端软件等。日志请求内容包括任何要记录或要调取的日志的内容。其包括但不限于:请求调取某一时间段内客户端软件运行异常的日志,将网站、客户端软件或服务端软件运行时所产生的异常写入日志中等。
例如,用户在使用终端设备中的某聊天软件时,该聊天软件运行出现异常而准备关闭,则所述聊天软件在关闭前将包含所述聊天软件日志来源和聊天内容的日志相关请求发送至所述日志处理设备1。又如,用户浏览某网站时,该网站每天将包含网站日志来源和网站运行情况的日志相关请求发送至所述日志处理设备1。再如,服务端的后台监控软件将包含服务端监控日志来源和获取某一时段的网站日志的日志相关请求发送至所述日志处理设备1。
在此,所述日志处理设备1先按照预设的协议解析所述日志相关请求,以得到日志来源和日志内容,再根据预设的日志来源和日志相关模块的对应关系得到相应该日志相关请求的待执行的日志相关模块。
本领域技术人员应该理解,上述日志相关请求仅为举例。其他现有的或今后可能出现的日志相关请求所包含的信息如可适用于本申请实施例,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
例如,某购物平台的网站、客户端购物软件、聊天软件以及服务端的购物服务处理软件均与所述日志处理设备1进行数据连接。其中,所述网站和购物服务处理软件运行在服务端,所述日志处理设备1可以与所述服务端共用一个网络设备,也可以为单独的网络设备。所述客户端购物软件和聊天软件运行在终端设备。其中,所述终端设备包括但不限于:个人电脑、笔记本、手机、平板电脑等。所述日志处理设备1中预设有网站与网站日志相关模块相对应、客户端购物软件日志来源与客户端购物软件日志相关模块相对应、购物处理软件日志来源与购物处理软件日志相关模块相对应。当所述购物平台的网站将网站日志来源和网站运行情况包含在日志相关请求A1中,并利用程序接口发送给所述日志处理设备1时,所述日志处理设备1接收并解析出来自网站的日志相关请求A1的日志来源和日志内容时,根据预设的各日志来源和日志相关模块的对应关系,确定所对应的网站日志相关模块。
又如,当所述购物平台中的购物处理软件产生一个与银联接口连接异常的日志信息时,将该异常的日志信息和购物处理软件日志来源包含在日志相关请求A2中,并发送给所述日志处理设备1。同样,当所述日志处理设备1接收并解析出来自购物处理软件的日志相关请求A2的日志来源和日志内容时,根据预设的各日志来源和日志相关模块的对应关系,确定所对应的购物处理日志相关模块。
本领域技术人员应该理解,所述日志处理设备1与网站、服务端、客户端等设备之间可以是通过网络进行通信连接,也可以是通过程序接口调用的方式进行通信。
本领域技术人员还应能理解上述根据日志相关请求确定待执行的日志相关模块的方式仅为举例,其他现有的或今后可能出现的根据日志相关请求确定待执行的日志相关模块的方式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述日志处理设备1通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
具体地,所述日志处理设备1所得到的日志相关模块被安置在对应的隔离容器中,该隔离容器所对应的类共享池中存储有日志相关模块所对应的日志实现类。当所述日志处理设备1将所得到的日志相关模块提供给所述日志处理设备1时,所述日志处理设备1根据预先在所述类共享池中建立的日志相关模块和日志实现类的对应关系,对所述日志相关模块所对应的日志实现类进行调用,以执行所述日志相关模块,由此获得与所述日志相关请求相对应的日志相关响应。在此,本领域技术人员应能理解,所述类共享池可包含于隔离容器,也可独立于该隔离容器、通过网络以供该隔离容器访问调用。
在此,本领域技术人员应能理解,所述隔离容器是一种容器,各日志相关模块以模块(module)的形式运行在该容器中,从而将架构中的类共享池与应用程序相隔离。例如,如图2所示,在java中,所述隔离容器以模块(module)类的形式运行在各应用程序中,或运行于应用程序之外、但可经由网络被访问,以达到将应用程序和类共享池相隔离的目的。又如,为了解决庞大的二方包(如内部消息客户端,远程调用框架)的快速、便捷升级以及二方包、应用对三方包(如log4j,hessian等)的依赖冲突问题,每一个二方包以Module的形式运行在隔离容器内部,各Module之间通过类加载模块(例如ClassLoader)相互隔离,因此Module之间依赖的二方包、三方包的作用域仅限当前ClassLoader内部,互不影响。
本领域技术人员应该理解,上述隔离容器的描述仅为举例。其他现有的或今后可能出现的架构中的将类共享池与应用程序相隔离的技术如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
在此,所述类共享池中包含但不限于:logback、log4jAPI及相关组件类。其中,所述相关组件类包括但不限于:logback和log4jAPI之间的转换类等。
需要说明的是,每个应用程序、网站或服务端的处理程序可以各自对应单独的隔离容器,也可以公用一个隔离容器。每个日志相关模块可以在所属的隔离容器中的类共享池中得到所对应的日志实现类。
在此,所述日志处理设备1预设了每个日志相关模块与隔离容器的对应关系。各日志相关模块可在所对应的隔离容器中的类共享池中找到所要调用的日志实现类。所述日志相关模块与隔离容器的对应关系可由技术人员手工或利用软件升级等手段预先配置在所述日志处理设备1中,以便所述日志处理设备1、日志处理设备1和日志处理设备1在运行时使用。
例如,所述日志处理设备1从预先配置的隔离容器所对应的类共享池中得到与所述购物处理日志相关模块相对应的购物处理日志实现类,并根据购物处理日志相关请求所提供的日志内容(如异常内容、异常时间、异常类型等)执行所述购物处理日志实现类,以记录一次购物处理的异常日志,并将执行后的异常日志作为日志相关响应。
又如,所述日志处理设备1从预先配置的隔离容器所对应的类共享池中得到与所述网页搜索日志相关模块相对应的网页搜索日志实现类,并根据网页搜索日志相关请求所提供的日志内容(如用户名、搜索内容等)执行所述网页搜索日志实现类,以记录一次网页搜索的异常日志,并将用于表示日志记录成功的布尔值作为日志相关响应。
本领域技术人员应该理解,上述日志相关响应的描述仅为举例。其他现有的或今后可能出现的其他日志相关响应的技术如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
所述日志处理设备1将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
具体地,所述日志处理设备1可视为所述日志处理设备1的通信部分,其通过网卡或软件接口等方式将所述日志相关响应返回至发送所述日志相关请求的目标应用。其中,所述目标应用包括可供用户发起日志相关请求并接收基于该日志相关请求所返回的日志相关响应的应用系统或应用模块;所述目标应用包括但不限于网站、客户端软件、购物处理软件等,例如在购物网站的已登录页面中发起访问用户的历史订单信息的请求,或者通过浏览器发起访问特定日志信息的请求。
图5示出根据本申请一个优选实施例的一种日志处理方法。所述日志处理方法除了包含上述实施例中所述的步骤S1、S2和S3外,还包括步骤S4。具体地,在步骤S1中,所述日志处理设备1根据日志相关请求确定待执行的日志相关模块。在步骤S2中,所述日志处理设备1用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。在步骤S3中,所述日志处理设备1用于将所述日志相关响应提供至所述日志相关请求所对应的目标应用。在步骤S4中,所述日志处理设备1用于通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以建立或更新所述类共享池。
具体地,所述日志处理设备1在运行时,由其内部的日志处理设备1通过解析所述日志相关请求来确定所对应的日志相关模块,再由所述日志处理设备1将所解析出的各日志内容代入所述日志相关模块,并指令所述日志处理设备1执行所代入的日志相关模块,在执行过程中,所述日志处理设备1调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,来实现相应日志的处理,以得到与所述日志相关请求所对应的日志相关响应,并由所述日志处理设备1将所得到的日志相关响应反馈至目标应用。
优选地,当所述类共享池和日志实现类需要建立时,所述日志处理设备1通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以建立所述类共享池。或者,当该隔离容器中需要添加新的日志相关模块或者其中已有的日志相关模块需要被升级更新时,所述日志处理设备1中的第四装置14通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以更新所述类共享池。
在此,所述日志处理设备1对所述隔离容器初始化处理方式包括但不限于:1)对所述隔离容器中的统一日志模块初始化处理。例如,将所述统一日志模块中的jcl-over-slf4j.jar、slf4j-api.jar、logback-classic.jar、logback-core.jar等jar包导入所述类共享池中。其中,所述日志处理设备1对所述隔离容器中的统一日志模块初始化处理的方式包括但不限于:a)将对应第一日志格式的日志实现类导入所述类共享池。例如,将logback必须要依赖的jar包导入所述类共享池。b)将用于桥接第二日志格式至所述第一日志格式的日志实现类导入所述类共享池。其中,当所述日志处理设备1为多个目标应用提供日志服务时,由于各目标应用所对应的日志相关模块的版本各不相同,需要向各日志相关模块提供统一的日志服务,则所述日志处理设备1将各日志相关模块所使用的第二日志格式桥接到所述第一日志格式。所述第二日志格式包括但不限于log4j等。所述第一日志格式包括但不限于logback等。例如,对于一些开源软件所依赖的日志门面桥接到指定的类中,即将log4j配置转化为logback并初始化logback,并将log4jAPI的桥接自检等逻辑予以启动。
2)为了确保所述第二日志格式与第一日志格式正确桥接,所述日志处理设备1还在初始化所述隔离容器时对所述用于桥接第二日志格式至第一日志格式的日志实现类进行验证。例如,所述日志处理设备1将log4j配置转化为logback并初始化logback,同时,对统一日志进行自检,以确保桥接功能正常。
3)在完成所述统一日志模块初始化处理后,将所述隔离容器中其他日志模块中至少两个日志模块间共享的日志实现类导入所述类共享池。其中,所述其他日志模块中至少一个日志模块包括二方应用模块,以及所述二方应用模块所依赖的三方应用模块等。例如,二方包a1依赖二方包a2,则需要二方包a2需要提供Module之间的类共享机制,把二方包a2中各个Module及应用中需要共享使用的类都导出后放在类共享池中,以实现对二方包a1和二方包a2中的共享日志实现类的统一管理。更为优选地,所述类共享池中与所述日志相关模块所对应的日志实现类,相对所述日志相关模块所对应的模块路径中的日志实现类,优先被调用。继续前述关于二方包a1和a2的例子,当所述类共享池和二方包a1中均包含名称为s-log的日志实现类,则所述二方包优先调用所述类共享池中的s-log日志实现类,只有当所述类共享池中无s-log日志实现类时,所述二方包中的日志相关模块才会调用所述日志相关模块所对应的模块路径中的s-log日志实现类。
优选地,所述日志处理设备1在各目标应用启动前初始化。
基于上述各优选方案,本申请的日志处理方法的又一优选方案是:所述步骤S2包括:步骤S21、S22和S23。如图6所示。在步骤S21中,所述日志处理设备1判断所要调用的日志实现类是否位于所述类共享池中,若是,执行步骤S22,若否,则执行步骤S23。
在步骤S22中,所述日志处理设备1调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,以执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
在步骤S23中,所述日志处理设备1调用所述日志相关模块所对应的模块路径中的日志实现类,以执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
具体地,所述日志处理设备1在执行所述日志相关模块时,可根据程序设计的规则,既调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,又调用所述日志相关模块所对应的模块路径中的日志实现类。例如,所述日志处理设备1在执行日志相关模块a1时,需要调用类共享池中的s-log日志实现类和所述日志相关模块a1路径下的p-log日志实现类,则所述隔离容器并不会阻止所述日志处理设备1来调用p-log日志实现类。
更为优选地,所述类共享池中与所述日志相关模块所对应的日志实现类,相对所述日志相关模块所对应的模块路径中的日志实现类,优先被调用。
例如,所述日志处理设备1在执行日志相关模块a2时,需要调用s-log日志实现类,而在所述类共享池中和所述日志相关模块a2的路径下均有名称为s-log的日志实现类,这时,所述日志处理设备1通过判断优先调用所述类共享池中的s-log日志实现类来执行所述日志相关模块a2,并得到相应的日志相关响应。
综上所述,本申请的一种日志处理方法与设备,将各目标应用所使用的日志实现类预设在隔离容器中,并根据各目标应用的日志相关请求调用相应的日志实现类来执行,能够统一各目标应用的日志处理过程,实现各目标应用的日志统一处理和管理;另外,针对已经开发完成并上线运行的目标应用,通过将第二日志格式桥接到第一日志格式的方式,将已有的、与统一日志格式不兼容的日志格式进行转化,以使目标应用通过升级的方式实现日志的统一处理;更近一步地,特别针对桥接处理的方式,本申请采用对桥接进行验证,以确保各目标应用的日志能够统一处理。所以,本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (10)

1.一种日志处理方法,其中,该方法包括:
a根据日志相关请求确定待执行的日志相关模块;
b通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应;
c将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
2.根据权利要求1所述的方法,其中,所述日志相关请求包括日志访问请求或涉及日志处理的应用访问请求。
3.根据权利要求1或2所述的方法,其中,该方法还包括:
通过对所述隔离容器初始化处理,将对应的日志实现类导入所述类共享池,以建立或更新所述类共享池。
4.根据权利要求3所述的方法,对所述隔离容器初始化处理包括:
对所述隔离容器中的统一日志模块初始化处理;
其中,对所述统一日志模块初始化处理包括:
将对应第一日志格式的日志实现类导入所述类共享池;
将用于桥接第二日志格式至所述第一日志格式的日志实现类导入所述类共享池。
5.根据权利要求4所述的方法,其中,对所述统一日志模块初始化处理还包括:
对所述用于桥接第二日志格式至第一日志格式的日志实现类进行验证。
6.根据权利要求4或5所述的方法,其中,对所述隔离容器初始化处理还包括:
在完成所述统一日志模块初始化处理后,将所述隔离容器中其他日志模块中至少两个日志模块间共享的日志实现类导入所述类共享池。
7.根据权利要求6所述的方法,其中,所述步骤b还包括:
通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,以及所述日志相关模块所对应的模块路径中的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应。
8.根据权利要求7所述的方法,其中,所述类共享池中与所述日志相关模块所对应的日志实现类,相对所述日志相关模块所对应的模块路径中的日志实现类,优先被调用。
9.根据权利要求6至8中任一项所述的方法,其中,所述其他日志模块中至少一个日志模块包括二方应用模块,以及所述二方应用模块所依赖的三方应用模块。
10.一种日志处理设备,其中,该设备包括:
第一装置,用于根据日志相关请求确定待执行的日志相关模块;
第二装置,用于通过调用所述日志相关模块所属隔离容器所对应的类共享池中与所述日志相关模块所对应的日志实现类,执行所述日志相关模块,以获得与所述日志相关请求相对应的日志相关响应;
第三装置,用于将所述日志相关响应提供至所述日志相关请求所对应的目标应用。
CN201410323810.0A 2014-07-08 2014-07-08 一种日志处理方法与设备 Active CN105373466B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410323810.0A CN105373466B (zh) 2014-07-08 2014-07-08 一种日志处理方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410323810.0A CN105373466B (zh) 2014-07-08 2014-07-08 一种日志处理方法与设备

Publications (2)

Publication Number Publication Date
CN105373466A true CN105373466A (zh) 2016-03-02
CN105373466B CN105373466B (zh) 2018-11-13

Family

ID=55375685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410323810.0A Active CN105373466B (zh) 2014-07-08 2014-07-08 一种日志处理方法与设备

Country Status (1)

Country Link
CN (1) CN105373466B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169016A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种应用程序日志采集方法及装置
CN111628967A (zh) * 2020-04-20 2020-09-04 深圳市广和通无线股份有限公司 日志数据的传输方法、装置、计算机设备和存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083214A1 (en) * 2000-12-27 2002-06-27 International Business Machines Corporation Protocol adapter framework for integrating non-IIOP applications into an object server container
CN1394034A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 综合网管设备日志管理系统
CN101515245A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 操作日志记录方法及系统
CN102650938A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 日志系统管理方法及日志系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020083214A1 (en) * 2000-12-27 2002-06-27 International Business Machines Corporation Protocol adapter framework for integrating non-IIOP applications into an object server container
CN1394034A (zh) * 2001-06-21 2003-01-29 华为技术有限公司 综合网管设备日志管理系统
CN101515245A (zh) * 2008-02-21 2009-08-26 卓望数码技术(深圳)有限公司 操作日志记录方法及系统
CN102650938A (zh) * 2011-02-28 2012-08-29 北京航空航天大学 日志系统管理方法及日志系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
刘永增: "基于Hadoop_Hive的海量web日志处理系统的设计与实现", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
白超 第: "基于并行计算的海量日志分析系统实现", 《计算机技术与发展》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107169016A (zh) * 2017-03-31 2017-09-15 北京奇艺世纪科技有限公司 一种应用程序日志采集方法及装置
CN107169016B (zh) * 2017-03-31 2020-01-10 北京奇艺世纪科技有限公司 一种应用程序日志采集方法及装置
CN111628967A (zh) * 2020-04-20 2020-09-04 深圳市广和通无线股份有限公司 日志数据的传输方法、装置、计算机设备和存储介质
CN111628967B (zh) * 2020-04-20 2023-01-17 深圳市广和通无线股份有限公司 日志数据的传输方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN105373466B (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
CN108322351B (zh) 生成拓扑图的方法和装置、故障确定方法和装置
US8843646B2 (en) Multi-desktop interaction using nested remote desktop sessions
CN105446750B (zh) WebApp启动运行、生成镜像文件的方法和装置
US20130152067A1 (en) Development of platform independent applications
CN105654006B (zh) 一种二维码扫码交互方法和装置
CN109299015B (zh) 一种软件测试方法、装置及系统
CN113190464A (zh) mock测试方法、装置、电子设备及介质
US9158520B2 (en) Development of platform independent applications
CN105100003A (zh) 一种客户端的网页游戏预加载方法及装置
US9357366B2 (en) Auditing of mobile applications
CN109948074A (zh) 网站数据对接方法、装置、存储介质、处理器及电子设备
CN108984202B (zh) 一种电子资源分享方法、装置和存储介质
CN104809057A (zh) 应用测试系统及应用测试方法
US20230017318A1 (en) Method and system for tracking events in distributed high-throughput applications
US10027692B2 (en) Modifying evasive code using correlation analysis
CN105138675A (zh) 数据库审计方法及设备
CN102662838B (zh) 一种浏览器中Flash的调试方法及系统
CN108021564A (zh) 一种页面重定向的方法和设备
US20160162984A1 (en) Processing unstructured messages
CN105556918A (zh) 一种资源下载方法、电子设备及装置
CN105373466A (zh) 一种日志处理方法与设备
CN110990056A (zh) 逆向分析方法、装置、电子设备及存储介质
CN105577707A (zh) 一种远程调用方法与设备
CN112882921B (zh) 故障模拟方法和装置
CN109600403B (zh) 一种发送信息的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant