CN102929771B - 日志记录装置和日志记录方法 - Google Patents

日志记录装置和日志记录方法 Download PDF

Info

Publication number
CN102929771B
CN102929771B CN201210372296.0A CN201210372296A CN102929771B CN 102929771 B CN102929771 B CN 102929771B CN 201210372296 A CN201210372296 A CN 201210372296A CN 102929771 B CN102929771 B CN 102929771B
Authority
CN
China
Prior art keywords
daily record
log
entity
record
type
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.)
Active
Application number
CN201210372296.0A
Other languages
English (en)
Other versions
CN102929771A (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.)
Yonyou Network Technology Co Ltd
Original Assignee
Yonyou Network 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 Yonyou Network Technology Co Ltd filed Critical Yonyou Network Technology Co Ltd
Priority to CN201210372296.0A priority Critical patent/CN102929771B/zh
Publication of CN102929771A publication Critical patent/CN102929771A/zh
Application granted granted Critical
Publication of CN102929771B publication Critical patent/CN102929771B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供了一种日志记录装置,包括:模型存储单元,用于存储方法与操作的关联关系、所述操作与实体的关联关系,以及所述实体的属性信息;拦截单元,用于对系统调用的方法进行拦截;获取单元,用于根据预设的需要记录日志的属性信息的类型,获取所述系统调用的方法所属的操作相对应的实体的属性信息;记录单元,用于记录所述系统调用的方法所属的操作相对应的实体的属性信息以生成日志。本发明还提出了一种日志记录方法。通过本发明的技术方案,能够对日志所需记录内容进行配置,灵活而方便地记录系统的日志。

Description

日志记录装置和日志记录方法
技术领域
本发明涉及信息记录技术领域,具体而言,涉及一种日志记录装置和一种日志记录方法。
背景技术
一般系统在运行时都会记录日志,日志分为系统日志和应用日志。应用日志记录的是操作人员在系统中做过怎样的操作,对系统中的哪些数据产生了什么样的影响。应用日志可以用来进行审计,以评价操作员在系统中的操作是否复合规则,并且有线索追踪和防抵赖的作用。
当前的应用日志记录主要采用以下方法:
1)提供统一的日志记录工具,能够在系统操作时记录操作。这种记录方法可以实现统一的日志记录调用,但是能记录的只有操作动作,而不能记录被操作的数据信息,即只能记录操作日志,而不能记录数据详情。
2)在各系统操作的实现代码中通过代码组织需要记录日志的内容并记录日志。这种记录方式可以记录系统操作的数据详情,但是,需要在不同的系统操作中分别设置记录日志的程序代码编码,工作量很大,通用性差,不易于扩展。
并且,系统的应用日志需要记录的内容,不同的系统使用者要求不相同,以上两种方案中都没有统一的日志配制方法,缺少灵活性。另外,记录日志过程需要进行计算机外部存储设备的写入操作,对系统的性能存在影响。
因此,需要一种新的日志记录技术,能够对日志所需记录内容进行配置,灵活而方便地记录系统的日志。
发明内容
本发明正是基于上述问题,提出了一种日志记录技术,能够对日志所需记录内容进行配置,灵活而方便地记录系统的日志。
有鉴于此,本发明提出了一种日志记录装置,包括:模型存储单元,用于存储方法与操作的关联关系、所述操作与实体的关联关系,以及所述实体的属性信息;拦截单元,用于对系统调用的方法进行拦截;获取单元,用于根据预设的需要记录日志的属性信息的类型,获取所述系统调用的方法所属的操作相对应的实体的属性信息;记录单元,用于记录所述系统调用的方法所属的操作相对应的实体的属性信息以生成日志。
在该技术方案中,可以通过元数据描述方法、操作、实体,然后存储方法与操作、操作与实体的关联关系,以及实体的属性信息,当系统调用方法执行操作时,可以拦截该方法,并根据该方法查询对应的操作,进而根据该操作查询该操作对应的实体,最终查询该实体的属性信息以记录日志,这使得应用日志可以记录操作的对象,并且能够在不同的系统中进行记录日志,记录过程更加灵活,通用性强,易于扩展,而且用户可以设置需要记录日志的属性信息的类型,满足了同用户的不同的需要。
在上述技术方案中,优选地,所述记录单元还用于,存储需要记录日志的操作的类型以及所述实体中需要记录的属性信息的类型;则所述日志记录装置还包括:判断单元,用于判断所述系统调用的方法相对应的操作是否需要记录日志;则所述获取单元用于,在所述判断单元的判断结果为是的情况下,获取所述系统调用的方法所属的操作相对应的实体中需要记录的属性信息并生成所述日志。
在该技术方案中,用户可以设置需要记录日志的操作的类型,在拦截方法后,当判定该方法所属的操作需要记录时,才获取相应的实体的属性信息并进行记录,这进一步提高了该装置的可操作性,更容易满足不同用户的不同需求。
在上述技术方案中,优选地,所述模型存储单元还用于,存储所述操作与日志类型的关联关系,则所述记录单元还用于,根据所述操作相对应的日志的类型,以相应的方式生成所述日志。
在该技术方案中,针对不同的操作,设置相应的日志类型,比如新增类型、修改类型和删除类型,针对不同的日志类型,则需要设置相应的策略形成日志。
在上述技术方案中,优选地,所述记录单元还用于,通过结构化方法记录所述属性信息以生成所述日志,则所述日志记录装置还包括:显示单元,用于根据展现处理类解析所述日志并进行显示。
在该技术方案中,通过结构化方法记录日志,使得其他应用在展现日志时,可以根据其结构化特点,选择不同格式进行展现。
在上述任一技术方案中,优选地,还包括:处理单元,用于将所述日志添加至异步队列中,以对所述日志进行持久化处理。
在该技术方案中,通过异步队列可以对日志进行批量的处理,提高日志配置的效率。
根据本发明的又一方面,还提出了一种日志记录方法,包括:步骤202,存储方法与操作的关联关系、所述操作与实体的关联关系,以及所述实体的属性信息;步骤204,对系统调用的方法进行拦截,根据预设的需要记录日志的属性信息的类型,获取所述系统调用的方法所属的操作相对应的实体的属性信息,并进行记录以生成所述日志。
在该技术方案中,可以通过元数据描述方法、操作、实体,然后存储方法与操作、操作与实体的关联关系,以及实体的属性信息,当系统调用方法执行操作时,可以拦截该方法,并根据该方法查询对应的操作,进而根据该操作查询该操作对应的实体,最终查询该实体的属性信息以记录日志,这使得应用日志可以记录操作的对象,并且能够在不同的系统中进行记录日志,记录过程更加灵活,通用性强,易于扩展,而且用户可以设置需要记录日志的属性信息的类型,满足了同用户的不同的需要。
在上述技术方案中,优选地,所述步骤202还包括:存储需要记录日志的操作的类型以及所述实体中需要记录的属性信息的类型;则所述步骤204还包括:判断所述系统调用的方法相对应的操作是否需要记录日志,若需要,则获取所述系统调用的方法所属的操作相对应的实体中需要记录的属性信息并生成所述日志。
在该技术方案中,用户可以设置需要记录日志的操作的类型,在拦截方法后,当判定该方法所属的操作需要记录时,才获取相应的实体的属性信息并进行记录,这进一步提高了该装置的可操作性,更容易满足不同用户的不同需求。
在上述技术方案中,优选地,所述步骤202还包括:存储所述操作与日志类型的关联关系;则所述步骤204还包括:根据所述操作相对应的日志的类型,以相应的方式生成所述日志。
在该技术方案中,针对不同的操作,设置相应的日志类型,比如新增类型、修改类型和删除类型,针对不同的日志类型,则需要设置相应的策略形成日志。
在上述技术方案中,优选地,所述步骤204还包括:通过结构化方法记录所述属性信息以生成所述日志,以根据展现处理类解析所述日志并进行显示。
在该技术方案中,通过结构化方法记录日志,使得其他应用在展现日志时,可以根据其结构化特点,选择不同格式进行展现。
在上述任一技术方案中,优选地,还包括:将所述日志添加至异步队列中,以对所述日志进行持久化处理。
在该技术方案中,通过异步队列可以对日志进行批量的处理,提高日志配置的效率。
通过以上技术方案,能够对日志所需记录内容进行配置,提高日志记录的灵活性和方便性。
附图说明
图1示出了根据本发明的实施例的日志记录装置的框图;
图2示出了根据本发明的实施例的日志记录方法的流程图;
图3示出了根据本发明的实施例的日志记录方法的具体流程图;
图4示出了根据本发明的实施例的日志记录装置的结构图;
图5示出了根据本发明的实施例的日志生成的流程图;
图6示出了根据本发明的实施例的日志处理的流程图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
图1示出了根据本发明的实施例的日志记录装置的框图。
如图1所示,根据本发明的实施例的日志记录装置100包括:模型存储单元102,用于存储方法与操作的关联关系、操作与实体的关联关系,以及实体的属性信息;拦截单元104,用于对系统调用的方法进行拦截;获取单元106,用于根据预设的需要记录日志的属性信息的类型,获取系统调用的方法所属的操作相对应的实体的属性信息;记录单元108,用于记录系统调用的方法所属的操作相对应的实体的属性信息以生成日志。
可以通过元数据描述方法、操作、实体,然后存储方法与操作、操作与实体的关联关系,以及实体的属性信息,当系统调用方法执行操作时,可以在应用服务器上调用拦截操作以拦截该方法,并根据该方法查询对应的操作,进而根据该操作查询该操作对应的实体,最终查询该实体的属性信息以记录日志,这使得应用日志可以记录操作的对象,并且能够在不同的系统中进行记录日志,记录过程更加灵活,通用性强,易于扩展,而且用户可以设置需要记录日志的属性信息的类型,满足了同用户的不同的需要。
优选地,记录单元108还用于,存储需要记录日志的操作的类型以及实体中需要记录的属性信息的类型;则日志记录装置100还包括:判断单元110,用于判断系统调用的方法相对应的操作是否需要记录日志;则获取单元106用于,在判断单元110的判断结果为是的情况下,获取系统调用的方法所属的操作相对应的实体中需要记录的属性信息并生成日志。
用户可以设置需要记录日志的操作的类型,在拦截方法后,当判定该方法所属的操作需要记录时,才获取相应的实体的属性信息并进行记录,这进一步提高了该装置的可操作性,更容易满足不同用户的不同需求。
优选地,模型存储单元102还用于,存储操作与日志类型的关联关系,则记录单元108还用于,根据操作相对应的日志的类型,以相应的方式生成日志。
针对不同的操作,设置相应的日志类型,比如新增类型、修改类型和删除类型,针对不同的日志类型,则需要设置相应的策略形成日志。对于新增类型,可以在系统调用操作完成后,查询操作相应的对象的属性信息,并记录生成日志;对于删除类型,可以在系统调用操作前,查询操作相应的对象的属性信息,并记录生成日志;对于修改类型,可以分别在系统调用操作前和系统调用操作后,分别查询操作相应的对象的属性信息,以形成修改前后的变化信息,并记录生成日志。
优选地,记录单元108还用于,通过结构化方法记录属性信息以生成日志,则日志记录装置100还包括:显示单元112,用于根据展现处理类解析日志并进行显示。
通过结构化方法记录日志,使得其他应用在展现日志时,可以根据其结构化特点,选择不同格式进行展现。日志内容包括日志概要信息和日志明细信息,概要信息中包括操作人员、时间、实体类型、操作、客户端IP等信息,可以从拦截的上下文中得到,具体内容可以通过如下结构描述:
其中记录变化前后的数据内容,并且记录实体的ID,用于区分不同数据。通过上述结构可以支持不同类型的对象记录日志而无需调整持久化结构,在进行显示时,根据需要使用的展现处理类解析上述信息以提供不同格式的显示。
优选地,根据本发明的实施例的日志记录装置100还包括:处理单元114,用于将日志添加至异步队列中,以对日志进行持久化处理。
通过异步队列可以对日志进行批量的处理,提高日志配置的效率。
图2示出了根据本发明的实施例的日志记录方法的流程图。
如图2所示,根据本发明的实施例的日志记录方法包括:步骤202,存储方法与操作的关联关系、操作与实体的关联关系,以及实体的属性信息;步骤204,对系统调用的方法进行拦截,根据预设的需要记录日志的属性信息的类型,获取系统调用的方法所属的操作相对应的实体的属性信息,并进行记录以生成所述日志。
可以通过元数据描述方法、操作、实体,然后存储方法与操作、操作与实体的关联关系,以及实体的属性信息,当系统调用方法执行操作时,可以在应用服务器上调用拦截操作以拦截该方法,并根据该方法查询对应的操作,进而根据该操作查询该操作对应的实体,最终查询该实体的属性信息以记录日志,这使得应用日志可以记录操作的对象,并且能够在不同的系统中进行记录日志,记录过程更加灵活,通用性强,易于扩展,而且用户可以设置需要记录日志的属性信息的类型,满足了同用户的不同的需要。
优选地,步骤202还包括:存储需要记录日志的操作的类型以及实体中需要记录的属性信息的类型;则步骤204还包括:判断系统调用的方法相对应的操作是否需要记录日志,若需要,则获取系统调用的方法相对应的操作所属的实体中需要记录的属性信息并生成所述日志。
用户可以设置需要记录日志的操作的类型,在拦截方法后,当判定该方法所属的操作需要记录时,才获取相应的实体的属性信息并进行记录,这进一步提高了该装置的可操作性,更容易满足不同用户的不同需求。
优选地,步骤202还包括:存储操作与日志类型的关联关系;则步骤204还包括:根据操作相对应的日志的类型,以相应的方式生成日志。
针对不同的操作,设置相应的日志类型,比如新增类型、修改类型和删除类型,针对不同的日志类型,则需要设置相应的策略形成日志。对于新增类型,可以在系统调用操作完成后,查询操作相应的对象的属性信息,并记录生成日志;对于删除类型,可以在系统调用操作前,查询操作相应的对象的属性信息,并记录生成日志;对于修改类型,可以分别在系统调用操作前和系统调用操作后,分别查询操作相应的对象的属性信息,以形成修改前后的变化信息,并记录生成日志。
优选地,步骤204还包括:通过结构化方法记录属性信息以生成日志,以根据展现处理类解析日志并进行显示。
通过结构化方法记录日志,使得其他应用在展现日志时,可以根据其结构化特点,选择不同格式进行展现。日志内容包括日志概要信息和日志明细信息,概要信息中包括操作人员、时间、实体类型、操作、客户端IP等信息,可以从拦截的上下文中得到,具体内容可以通过如下结构描述:
其中记录变化前后的数据内容,并且记录实体的ID,用于区分不同数据。通过上述结构可以支持不同类型的对象记录日志而无需调整持久化结构,在进行显示时,根据需要使用的展现处理类解析上述信息以提供不同格式的显示。
优选地,根据本发明的实施例的日志记录方法还包括:将日志添加至异步队列中,以对日志进行持久化处理。
通过异步队列可以对日志进行批量的处理,提高日志配置的效率。
图3示出了根据本发明的实施例的日志记录方法的具体流程图。
如图3所示,根据本发明的实施例的日志记录方法具体包括:
步骤302,构建实体模型,通过元数据描述系统操作的对象(实体)的组成,实体中属性的类型、名称,以及实体之间的关系;构建操作模型,操作归属于实体,通过元数据描述操作对应代码实现的方法名称、参数、返回值等信息,以及接口参数与实体的关系;
步骤304,配置日志规则,设置需要记录日志的操作类型,设置需要记录的实体的属性信息的类型;
步骤306,拦截系统调用的方法,可以通过AOP(AspectOrientedProgramming,面向切面编程)技术进行拦截;
步骤308,根据拦截的方法,操作模型中查询相应的操作;
步骤310,根据操作模型中的信息判断当前操作的类型是否属于需要记录的操作的类型;
步骤312,若需要记录,则根据操作模型中的信息查询该操作对应的实体,并获取该实体的属性信息中需要记录的属性信息,以生成日志;
步骤314,将日志信息送入异步队列进行处理,以完成日志的持久化。
图4示出了根据本发明的实施例的日志记录装置的结构图。
如图4所示,根据本发明的实施例的日志记录装置可以包括:模型描述单元402,日志设置单元404,日志形成单元406,日志记录单元408。
模型描述单元402通过元数据描述系统的实体模型和操作模型,并记录在系统中供系统运行时使用。
实体模型通过实体组件、属性和关系描述,并且实体模型描述实体、属性与对应持久化结构的关系。其描述内容可以通过xml文件或者数据库表记录。
通过数据库表记录实体模型可以如表1至表3所示结构:
表1
表1记录实体组件内容,实体组件用于描述实体的唯一标识、编码、名称等,以及描述能够唯一区分实体对象的主属性信息,并且描述实体持久化对应的存储信息和对象的访问方法信息,分别用于持久化和对象访问使用。实体全类名描述实体对应的实现类类型。
表2
表2记录属性描述内容,描述了属性的归属实体,属性的类型和类型样式,其中,属性的类型可以是其他实体,类型样式可以是引用和/或组合,同时,属性描述中还描述了属性对应的持久化结构信息,如果使用数据库表存储,还需要描述明确表名、字段名和字段属性。
表3
表3记录了实体之间的关系,实体与实体之间是引用关系,还是组合关系或者继承关系,通过实体间关系可以描述复杂结构的对象。其中包括源实体的哪个属性引用或者是组合了其他实体。没有被其他实体组合的实体是主实体,反之为子实体。
操作模型可以对系统中提供的操作进行描述。操作都是针对于实体进行的,操作归属于实体。因此,在操作模型中需要记录操作的所属实体。操作模型中针对每一个操作需要描述此操作是否需要记录日志,并且描述日志的类型(新增类型、修改类型和删除类型)。操作模型还需要描述每个操作对应系统实现代码中的类、方法以及方法的参数、返回值及其类型。各参数的描述中需要描述参数与实体的关联关系,具体包括主实体、子实体、主实体ID、子实体ID、其他包含实体ID的结构等不同种类的关联关系。对于不同的关联关系提供不同的查找实体或者子实体的方法。一个操作可以对应一个或者多个系统的方法,一个方法可以没有参数可以有一个或者多个参数。操作模型的描述内容可以通过xml文件或者数据库表记录。
通过数据库表记录操作模型可以如表4至表7所示结构:
表4
表4记录操作的信息,其中操作的ID唯一地标识一个操作。
表5
表5记录了接口方法信息,其中方法ID唯一地标识一个接口方法;方法签名用于方法名、返回值类型、参数类型的形成方法的描述。
表6
表6记录了方法的参数信息,其中参数ID唯一地确定一个方法的参数,序号描述方法的各个参数的顺序,日志类型描述参数与实体的关系,参数描述中可以描述参数的含义,对于子实体ID关联关系的参数,其中描述了子实体的全类名,用于区分实体中存在多个子实体的时候当前使用的是哪个具体的子实体。对于其他包含实体ID的数据结构,记录从数据结构中得到的访问全路径,可以采用如下结构进行记录:
需要注册成pachage.upinfo~getClerkID。
所属实体ID 操作ID 方法ID
表7
表7记录操作与方法之间的对应关系,一个方法只能属于一个操作,一个操作可以对应多个方法。
日志设置单元404通过查询模型中具有可记录日志操作的实体,以及实体的属性和可记录日志的操作形成可设置记录日志的信息。对于实体的操作分别设置是否记录日志以及日志需要记录的属性集合。
可以通过以下过程查询可记录日志的实体、操作和属性:
1.查询标记为可以记录日志的操作,通过类似于以下SQL(结构化查询语言)查询:select*from操作where是否记录日志=‘是’;
2.循环遍历1的结果得到需要记录日志实体ID集合A,同时,将操作按照实体ID分组放到Map中。通过以下查询得到实体:select*from实体where实体IDin(A)得到结果集B;
3.通过以下查询得到实体的属性:select*from属性where实体IDin(A)得到结果集C;
4.循环遍历结果集C,按照实体ID为Key将属性分组放到Map中;
5.循环遍历结果集B,并用对应的实体ID得到操作集合和属性集合形成备选实体、属性和操作对象。
对于实体、属性和操作的关系可以记录在xml或者数据库表中,通过数据库表记录的形式如表8所示,
实体ID 操作ID 属性ID 序号
表8
其中序号用于描述日志内容中属性值的记录先后顺序。
日志形成单元406可以通过AOP技术拦截系统对方法的调用,通过拦截到的方法信息查询相应的操作,进而确定是否需要记录日志。如果需要记录日志,根据方法对应的操作中描述的记录日志类型确定日志形成策略,通过参数实体关联关系的不同类型查找到对应的实体。根据日志配置信息中设置的属性,通过实体的访问器读取相应属性值形成日志内容。
具体处理过程如图5所示,包括:
步骤502,通过AOP拦截系统对方法的调用;
步骤504,根据拦截的方法进行反射以形成方法的签名,根据方法的签名查询方法对应的操作;
步骤506,读取操作信息,判断是否需要记录日志;
步骤508,若需要记录日志,进一步判断日志的类型,并根据日志类型确定日志的形成策略;
步骤510,若日志类型为修改类型,则在调用操作前,根据方法参数中注册的日志参数关联关系查询对应的实体或子实体;
步骤512,调用操作后,根据方法参数中的注册方法查询对应的实体或子实体;
步骤514,根据日志配置中的属性,实体中注册的访问器分别访问操作调用前后的实体,形成修改前后变化信息,进而生成日志;
步骤516,将日志添加至异步队列进行持久化处理;
步骤518,若日志类型为增加类型,在调用操作完成后,根据日志配置信息,实体中注册的访问器访问实体中的属性信息,以生成日志,并返回步骤516;
步骤520,若日志类型为删除类型,在调用操作前,根据方法参数中注册的日志参数关联关系查询对应的实体,根据日志配置信息和实体访问器访问实体中的属性信息,以生成日志信息,并返回步骤516。
需要根据不同参数实体的关联关系,提供不同的实体查找方法,不同参数实体类型查询实体的方法如下:
1.主实体对象
在这种情况下,如果操作是新增和删除类型,那么日志只需要该对象本身的内容,可以直接获取,而对于修改类型的操作,需要获取其修改前的数据信息,通过实体描述的访问器方式获取实体中的实体ID值,再通过实体模型中的描述对应数据库表和属性形成查询语句,在数据库中查找其修改前的数据对象。
2.主实体ID
通常,在这种情况下操作是用来进行数据删除,需要根据实体上的定义,根据主键查询其对应的数据对象(方法同主实体对象中通过ID查询修改前对象)。
3.子实体对象
在这种情况下通过子实体对象中记录的父实体ID,然后按照条目2的方式查询到主实体,将子实体添加到主实体形成只包含部分子实体的实体对象。
4.子实体ID
首先,根据操作模型中的方法参数描述的子实体全类名信息,从实体模型中得到子实体的相应描述同条目2中的描述查询子实体。然后按照条目3的处理过程得到只包含部分子实体的实体对象。
5.其它包含实体ID的结构
通过参数描述中描述的属性访问全路径使用反射机制从参数中得到实体ID。例如参数描述注册的是pachage.upinfo~getClerkID,通过对象反射调用参数pachage.upinfo的getClerkID方法得到实体ID。得到ID后的处理同条目2。
日志记录单元408用于处理日志的具体记录。
日志记录过程有大量的应用操作需要记录日志,为了降低对效率的影响,可以采用分散存储和异步记录的方式处理。
日志存储可以使用如下结构记录:
其中logmsg用于记录日志详细信息,以及记录结构化的日志详细内容。
对于不同的对象的日志可以存储在同结构的不同存储表中,通过在日志服务器中日志记录配置文件中增加描述明确实体记录的存储表,结构如下所示:
A实体ID=日志存储表1
B实体ID=日志存储表2
没有配置的日志可以记录在默认存储表中。
日志记录的处理过程如图6所示,包括:
步骤602,判断日志队列是否创建,队列为系统内存中的先进先出数据结构;
步骤604,若已创建队列,则将日志添加至队列,同时启动定时器,定时器是定时触发的程序组件,当定时器时间到达后会自动调用预置的处理过程。根据应用系统的繁忙程度设置定时器的时间,一般可以设置为1分钟;
步骤606,采用异步方式判断队列中的待持久化日志数量是否达到事先设定的阈值,阈值可以根据系统的繁忙程度设置,一般情况将阈值设置为1000,如果未达到阈值则等待;
步骤608,如果达到阈值,根据日志中的实体类型确定日志持久化的表,批量将日志插入到日志表中;
步骤610,将队列中已经持久化的日志进行出队处理,将其从队列中删除;
步骤612,将定时器重新设置开始计时;
步骤614,如果没有创建则创建队列,则创建队列并同时启动定时器,并进行步骤604。
需要说明的是,当定时器定时时间到达,只要队列中有待记录的日志,无论是否达到阈值都将日志记录到数据库表中,并且重新设置定时器,重新开始计时。
本发明可以在软件系统进行应用操作后,灵活的配置哪些操作需要记录日志,以及配置日志中记录哪些内容。可以不修改代码,仅仅是增加配置实现对新的业务操作实现记录日志功能。通过队列技术,大大降低了记录日志的I/O操作数量,降低了日志记录的系统开销,提升了系统的执行效率。实现了高效、准确、按需记录应用日志。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种日志记录装置,其特征在于,包括:
模型存储单元,用于存储方法与操作的关联关系、所述操作与实体的关联关系,以及所述实体的属性信息;
拦截单元,用于对系统调用的方法进行拦截;
获取单元,用于根据预设的需要记录日志的属性信息的类型,获取所述系统调用的方法所属的操作相对应的实体的属性信息;
记录单元,用于记录所述系统调用的方法所属的操作相对应的实体的属性信息以生成日志;
其中,所述实体是所述系统操作的对象,所述系统调用的方法所属的操作相对应的实体的属性信息的类型是预设的需要记录日志的属性信息的类型。
2.根据权利要求1所述的日志记录装置,其特征在于,所述记录单元还用于,存储需要记录日志的操作的类型以及所述实体中需要记录的属性信息的类型;则所述日志记录装置还包括:
判断单元,用于判断所述系统调用的方法相对应的操作是否需要记录日志;则
所述获取单元用于,在所述判断单元的判断结果为是的情况下,获取所述系统调用的方法相对应的操作所属的实体中需要记录的属性信息并生成所述日志。
3.根据权利要求1所述的日志记录装置,其特征在于,所述模型存储单元还用于,存储所述操作与日志类型的关联关系,则
所述记录单元还用于,根据所述操作相对应的日志的类型,以相应的方式生成所述日志。
4.根据权利要求1所述的日志记录装置,其特征在于,所述记录单元还用于,通过结构化方法记录所述属性信息以生成所述日志,则所述日志记录装置还包括:
显示单元,用于解析所述日志并进行显示。
5.根据权利要求1至4中任一项所述的日志记录装置,其特征在于,还包括:
处理单元,用于将所述日志添加至异步队列中,以对所述日志进行持久化处理;
其中,所述处理单元具体用于:
将日志添加至队列,同时启动定时器,定时器是定时触发的程序组件,当定时器时间到达后会自动调用预置的处理过程;
采用异步方式判断队列中的待持久化日志数量是否达到事先设定的阈值,如果未达到阈值则等待;如果达到阈值,根据日志中的实体类型确定日志持久化的表,批量将日志插入到日志表中;
将队列中已经持久化的日志进行出队处理,将其从队列中删除;
将定时器重新设置开始计时。
6.一种日志记录方法,其特征在于,包括:
步骤202,存储方法与操作的关联关系、所述操作与实体的关联关系,以及所述实体的属性信息;
步骤204,对系统调用的方法进行拦截,根据预设的需要记录日志的属性信息的类型,获取所述系统调用的方法所属的操作相对应的实体的属性信息,并进行记录以生成所述日志;
其中,所述实体是所述系统操作的对象,所述系统调用的方法所属的操作相对应的实体的属性信息的类型是预设的需要记录日志的属性信息的类型。
7.根据权利要求6所述的日志记录方法,其特征在于,所述步骤202还包括:存储需要记录日志的操作的类型以及所述实体中需要记录的属性信息的类型;则
所述步骤204还包括:判断所述系统调用的方法相对应的操作是否需要记录日志,若需要,则获取所述系统调用的方法相对应的操作所属的实体中需要记录的属性信息并生成所述日志。
8.根据权利要求6所述的日志记录方法,其特征在于,所述步骤202还包括:存储所述操作与日志类型的关联关系;则
所述步骤204还包括:根据所述操作相对应的日志的类型,以相应的方式生成所述日志。
9.根据权利要求6所述的日志记录方法,其特征在于,所述步骤204还包括:通过结构化方法记录所述属性信息以生成所述日志,以解析所述日志并进行显示。
10.根据权利要求6至9中任一项所述的日志记录方法,其特征在于,还包括:
将所述日志添加至异步队列中,以对所述日志进行持久化处理;
其中,将所述日志添加至异步队列中,以对所述日志进行持久化处理的步骤具体包括:
将日志添加至队列,同时启动定时器,定时器是定时触发的程序组件,当定时器时间到达后会自动调用预置的处理过程;
采用异步方式判断队列中的待持久化日志数量是否达到事先设定的阈值,如果未达到阈值则等待;如果达到阈值,根据日志中的实体类型确定日志持久化的表,批量将日志插入到日志表中;
将队列中已经持久化的日志进行出队处理,将其从队列中删除;
将定时器重新设置开始计时。
CN201210372296.0A 2012-09-28 2012-09-28 日志记录装置和日志记录方法 Active CN102929771B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210372296.0A CN102929771B (zh) 2012-09-28 2012-09-28 日志记录装置和日志记录方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210372296.0A CN102929771B (zh) 2012-09-28 2012-09-28 日志记录装置和日志记录方法

Publications (2)

Publication Number Publication Date
CN102929771A CN102929771A (zh) 2013-02-13
CN102929771B true CN102929771B (zh) 2015-12-02

Family

ID=47644575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210372296.0A Active CN102929771B (zh) 2012-09-28 2012-09-28 日志记录装置和日志记录方法

Country Status (1)

Country Link
CN (1) CN102929771B (zh)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156300A (zh) * 2013-05-14 2014-11-19 利德科技发展有限公司 日志管理系统和日志管理方法
CN104144081A (zh) * 2014-08-26 2014-11-12 福建天晴数码有限公司 一种通用应用日志管理方法、装置和系统
CN104361032B (zh) * 2014-10-27 2018-05-22 深圳市远行科技股份有限公司 一种操作日志管理的方法
CN104636246A (zh) * 2015-03-18 2015-05-20 成都市卓睿科技有限公司 一种软件业务系统日志的记录方法
CN106878041B (zh) * 2015-12-11 2020-11-20 阿里巴巴(中国)有限公司 日志信息处理方法、装置及系统
CN106294091B (zh) * 2016-08-11 2019-01-04 福建富士通信息软件有限公司 一种无侵入式日志拦截性能分析方法及系统
CN106354503A (zh) * 2016-08-29 2017-01-25 浪潮电子信息产业股份有限公司 一种用于Linux的audit日志分析方法
CN106980638B (zh) * 2016-09-29 2020-12-04 创新先进技术有限公司 操作记录系统、方法和操作对象变更信息查询方法
CN108132873A (zh) * 2016-12-01 2018-06-08 无锡中科西北星科技有限公司 系统过程日志打印与远程多终端日志调试控制系统
CN106777026B (zh) * 2016-12-08 2019-12-20 用友网络科技股份有限公司 支持微服务架构事务最终一致性的方法、装置及系统
CN109271331B (zh) * 2018-08-20 2022-06-10 平安普惠企业管理有限公司 日志的生成方法、装置、计算机设备及存储介质
CN109376130A (zh) * 2018-10-18 2019-02-22 国云科技股份有限公司 一种基于多云平台的自定义模板记录操作日志的方法
CN109783458B (zh) * 2018-12-18 2022-03-15 大唐软件技术股份有限公司 一种记录日志变更的方法及装置
CN111368144A (zh) * 2018-12-26 2020-07-03 阿里巴巴集团控股有限公司 日志解析、日志记录方法及装置、电子设备、存储介质
CN112632017A (zh) * 2020-11-05 2021-04-09 北京乐学帮网络技术有限公司 数据库日志的处理方法、装置以及电子设备、存储介质
CN113094360B (zh) * 2021-03-19 2023-11-10 北京优奥创思科技发展有限公司 一种跨行业数据处理方法
WO2023026086A1 (en) * 2021-08-25 2023-03-02 Sensetime International Pte. Ltd. Logging method and apparatus, electronic device, and computer-readable storage medium
CN115757043B (zh) * 2022-11-29 2023-07-21 广发银行股份有限公司 一种日志数据记录方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122924A (zh) * 2007-09-30 2008-02-13 华为技术有限公司 逻辑日志生成方法、数据库备份/恢复方法与系统
CN102479076A (zh) * 2010-11-26 2012-05-30 金蝶软件(中国)有限公司 一种记录审计日志的方法、装置及业务系统
CN102682015A (zh) * 2011-03-15 2012-09-19 中国科学院声学研究所 一种面向高清媒体的嵌入式文件存储结构及存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493350B2 (en) * 2004-10-25 2009-02-17 International Business Machines Corporation Entity based configurable data management system and method

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122924A (zh) * 2007-09-30 2008-02-13 华为技术有限公司 逻辑日志生成方法、数据库备份/恢复方法与系统
CN102479076A (zh) * 2010-11-26 2012-05-30 金蝶软件(中国)有限公司 一种记录审计日志的方法、装置及业务系统
CN102682015A (zh) * 2011-03-15 2012-09-19 中国科学院声学研究所 一种面向高清媒体的嵌入式文件存储结构及存储方法

Also Published As

Publication number Publication date
CN102929771A (zh) 2013-02-13

Similar Documents

Publication Publication Date Title
CN102929771B (zh) 日志记录装置和日志记录方法
CN104573115B (zh) 支持多类型数据库操作的集成接口的实现方法及系统
US9195707B2 (en) Distributed event system for relational models
US10659609B2 (en) Hierarchy based graphical user interface generation
US11423041B2 (en) Maintaining data lineage to detect data events
US6901405B1 (en) Method for persisting a schedule and database schema
US11172065B1 (en) Monitoring framework
US20100115100A1 (en) Federated configuration data management
US20050165865A1 (en) Metadata journal for information technology systems
CN104067268A (zh) 统一的用户简档
US11176173B2 (en) Arrangement for enriching data stream in a communications network and related method
US8447768B2 (en) Techniques for generically accessing data
US10599612B1 (en) Method and system for federated context collaboration service
US9305066B2 (en) System and method for remote data harmonization
US8055682B1 (en) Security information repository system and method thereof
CN110019113B (zh) 一种数据库的业务处理方法及数据库服务器
CN118171880A (zh) 服务分配处理方法、装置、存储介质及电子设备
CN115293605A (zh) 一种数据处理方法、装置、设备及介质
TW202123001A (zh) 劃分服務的解耦系統及其方法
Diaz et al. Cloud Data Design, Orchestration, and Management Using Microsoft Azure
Collins et al. Grid Data Services-Relational Database Management Systems
CN117421304A (zh) 面向数字孪生平台的关系型和时序型数据库协同运行方法
CN117891813A (zh) 一种基于数据目录实现数据互享的方法及装置
CN114547173A (zh) 一种数据仓库构建方法、装置、设备及计算机存储介质
Xiang Using grid middleware to query a heterogeneous distributed version of the sdss database

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100094 Haidian District North Road, Beijing, No. 68

Applicant after: Yonyou Network Technology Co., Ltd.

Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park

Applicant before: UFIDA Software Co., Ltd.

COR Change of bibliographic data
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Song Tao

Inventor after: Qiu Dongqiang

Inventor after: E Wei

Inventor before: Song Tao

Inventor before: E Wei