CN102810057B - 一种记录日志的方法 - Google Patents
一种记录日志的方法 Download PDFInfo
- Publication number
- CN102810057B CN102810057B CN201110143035.7A CN201110143035A CN102810057B CN 102810057 B CN102810057 B CN 102810057B CN 201110143035 A CN201110143035 A CN 201110143035A CN 102810057 B CN102810057 B CN 102810057B
- Authority
- CN
- China
- Prior art keywords
- attribute
- property value
- operationlogid
- log
- database
- 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
Links
Landscapes
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种在程序开发中基于AOP(面向方面编程)技术的记录操作日志和记录数据库审计日志的实现方法。操作日志主要描述特定人员所作的业务操作,数据库审计日志主要描述所作的业务操作带来的数据变化。
Description
技术领域
本发明涉及一种记录日志的方法,并且尤其涉及基于AOP技术的记录日志的方法。
背景技术
传统的程序通常表现出一些不能自然地适合单一的程序模块或者是几个紧密相关的程序模块的行为。例如,面向对象编程关注将需求功能划分为不同的并且相对独立、封装良好的类,并让它们有着属于自己的行为,依靠继承和多态等来定义彼此的关系。因此,例如,当要对一个更新操作进行关于操作人员和数据库变更的日志记录时,需要在实现更新操作接口的实现类中添加实现日志记录的过程。如此,如果要实现多个接口,就要在每个实现的类中都添加这些记录过程。在系统开发的过程中,业务代码中的这些非业务功能的代码,例如日志记录,常常会造成代码结构混乱。而且,这将导致开发人员不断重复的相同的工作,并且容易增加产生错误的代码的可能性。
理想地,希望将通用的功能从不相关的类当中分离出来,由此使得多个类共享一种行为。从而,一旦这种行为发生变化,不必修改多个类而只需要修改这个行为即可。在AOP(AspectOrientedProgramming)中,这种行为被称为横切,其跨越了给定编程模型中的典型职责界限。常见的一些横切行为有,例如,日志记录、跟踪、事务的处理、持久化等。
因此,需要一种记录日志的方法,来定义交叉的关系,并将这些关系应用于跨模块的、彼此不同的对象模型,从而使得代码有更好的可读性和易于维护,同时增加程序开发的透明性和类的扩展性,提高系统开发效率和开发系统的稳定性。
发明内容
本发明提供了一种在JEE程序开发中基于AOP(面向方面编程)技术的记录操作日志和记录数据库审计日志的实现方法。操作日志主要描述特定人员所作的业务操作,数据库审计日志主要描述所作的业务操作带来的数据变化。通过该实现,在JEE应用开发过程中使开发人员更加关注于具体业务实现,而将操作日志和数据库审计日志等非核心业务技术实现通过配置由底层实现来完成。
根据本发明的一个目的,提供了一种在JEE开发环境下记录操作日志和数据库审计日志的方法,其特征在于,包括以下步骤:
A、利用EJB中提供的面向方面编程的实现,记录操作日志,其中,
在记录操作日志时,利用Java反射机制读取业务逻辑方法的JavaAnnotation获得对于业务逻辑方法的描述,所述业务逻辑方法的描述至少限定标识操作的operationLogId属性值,
然后,利用operationLogId属性值构造OperationLog对象;
B、执行业务逻辑方法;
C、分别在作为实体对象的生命周期的PostPersit,PostUpdate和PostRemove过程后,记录数据库审计日志,其中,
记录数据库审计日志包括以下步骤:
a、利用Java反射机制读取实体对象的属性名称,
b、利用Java反射机制根据属性名称获取该属性对应的值,
c、根据属性当前值与属性变更前的值,构造AuditLog对象。
优选地,OperationLog对象与AuditLog对象是一对多的关系,OperationLog对象包括标识操作的operationLogId属性,AuditLog对象包括标识操作的operationId属性,其中,所述方法使该operationLogId属性与该operationId属性关联。
优选地,在基于B/S的JEE开发环境的情况下,所述方法在步骤B中进一步构造OperationLog对象,使其包括用户信息属性值,其中,
从保存用户信息的session中获取用户信息属性值,并将用户信息属性值绑定到当前的执行线程上;
在执行业务逻辑方法时,从该执行线程获取用户信息属性值,并利用该用户信息属性值进一步构造OperationLog对象。
优选地,通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在步骤A中,将构造OperationLog对象产生的operationLogId属性值绑定到当前的执行线程上,
在步骤C中,从该执行线程获取operationLogId属性值,以及将该operationLogId属性值传递给AuditLog对象的operationId属性值。
根据本发明的另一个目的,提供了一种在JEE开发环境下构建操作日志对象和数据库审计日志对象的方法,其特征在于,所述操作日志对象和所述数据库审计日志对象通过自定义的元数据配置关联。
优选地,所述操作日志对象包括标识操作的operationLogId属性,
所述数据库审计日志对象包括标识操作的operationId属性,
其中,该方法通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在构造操作日志对象产生operationLogId属性值时,将其绑定到当前的执行线程上;
在构造数据库审计日志对象时,从执行线程中获取operationid属性值后绑定到数据库审计日志对象,用以维护一对多的关联。
根据本发明的另一个目的,提供了一种在JEE开发环境下构建操作日志对象的方法,其特征在于,
利用EJB中提供的面向方面编程的实现,基于利用Java反射机制获取操作日志对象的operationLogId属性值,其中,
操作日志对象进一步包括用户信息属性,其中,该方法通过下述步骤获得用户信息属性值:
a、用户登录B/S系统,用户信息被放置在session中;
b、当用户每执行一个业务逻辑操作,从session中获取到用户信息将其绑定到当前的执行线程上;
c、业务逻辑执行时从该执行线程上获取到用户信息。
根据本发明的另一个目的,提供了一种在JEE开发环境下构建数据库审计日志对象的方法,其特征在于,
分别在作为实体对象的生命周期的PostPersit,PostUpdate和PostRemove过程后,构建数据库审计日志对象,其中,
构建数据库审计日志对象包括以下步骤:
a、利用Java反射机制读取实体对象的属性名称,
b、利用Java反射机制根据属性名称获取该属性对应的值,
c、根据属性当前值与属性变更前的值,构造构建数据库审计日志对象,其中,
操作日志对象进一步包括用户信息属性,其中,该方法通过下述步骤获得用户信息属性值:
a、当用户每执行一个业务逻辑操作,从session中获取到用户信息属性值将其绑定到当前的执行线程上;
b、业务逻辑执行时从该执行线程上获取用户信息属性值。
本发明的技术方案减少了逻辑代码模块中的非功能性代码的量和重复的工作量,降低了其错误的可能性。另外,通过配置调整操作日志和数据库审计日志的应用范围,能够是应用程序快速适应对应的需求变化。
本发明的应用的更大范围可从后文给出的详细描述中变得明显。然而,应当理解,详细的描述和具体实施例虽然表示本发明的优选实施例,但仅仅是以示例的方式给出,这是因为根据这种详细的描述,在本发明的精神和范围内的各种变化和修改对于本领域的技术人员来说将变得明显。
附图说明
图1是根据本发明一个实施例的用于实现记录日志的自定义元数据的配置示意图;
图2是根据本发明一个实施例的记录操作日志的示意图;
图3是根据本发明一个实施例的记录数据库审计日志的示意图。
具体实施方式
以下将结合附图具体描述本发明的实施例。
图1是根据本发明一个实施例的用于实现记录日志的自定义元数据的配置示意图。如图所示,作为示例,用于操作日志记录的OperationLog对象(操作日志对象)可以包括:
(1)operationLogId属性,该属性用于标识操作,诸如操作ID;
(2)operationUserId属性和operationUserName属性,这两个属性可以作为用户信息属性,即用户ID和用户姓名;
(3)operationDate属性,该属性表示操作日期;
(4)operationDesc属性,该属性表示操作的业务描述;
(5)operationRemark属性,该属性用于表示对于操作的补充信息。
本领域的技术人员可以理解的是,OperationLog对象可以包括上述一个或多个属性。
用于数据库审计日志记录的AuditLog对象(数据库审计日志对象)包括:
(1)auditLogId属性,该属性用于标识审计,例如审计ID;
(2)operationId属性,该属性用于标识操作,诸如操作ID;
(3)auditTableName属性,该属性用于表示审计的数据库表的名称;
(4)auditFileName属性,该属性用于表示审计的文件的名称;
(5)auditDate属性,该属性表示审计日期;
(6)operationUserId属性,该属性作为用户信息属性,即用户ID;
(7)oldValue属性和newValue属性。这两个属性表示数据操作的实体对象的属性值的变化。其中,oldValue值为变更前的值,而newValue的值为变更后的值。
本领域的技术人员可以理解的是,OperationLog对象可以包括上述一个或多个属性。
从图1可以看出,用于记录操作日志的OperationLog对象与用于记录数据库审计日志的AuditLog对象是单向一对多的关系。并且通过OperationLog对象中的operationLogId属性与AuditLog对象中的operationId属性进行关联。
以下将根据图2以及图3,详细描述用于记录操作日志的OperationLog对象与用于记录数据库审计日志的AuditLog对象产生过程。
图2是根据本发明一个实施例的记录操作日志,即生成OperationLog对象的示意图。如图2所示,调用者和业务逻辑方法是正常的业务逻辑代码或模块,AOPProxy是底层AOP技术实现,这里AOPProxy通过EJB中提供的基于面向方面的编程实现。本领域的技术人员所熟知的是,在JEE应用开发过程中,通常使用EJB来作为业务逻辑的实现方式;并且,本发明关注JEE的应用开发,由此,在该实施例中,使用标准的EJB的AOP实现,即拦截器机制。例如,可以提供一个拦截器BizAuditInterceptor,作为示例,其业务方法的伪代码如下:
本领域的技术人员还可以理解的是,根据EJB中提供的基于面向方面的编程实现,还可以根据需要设计其它的拦截器。
图2中示出的记录操作日志的步骤是实现记录操作日志的逻辑模块,在该逻辑模块中产生OperationLog对象。在本发明的一个实施例中,在记录操作日志时,可以利用Java反射机制读取所述业务逻辑方法的JavaAnnotation(Java注释)获得对于业务逻辑方法的描述。这里,业务逻辑方法的描述至少限定标识操作的operationLogId属性值。然后,利用operationLogId属性值构造OperationLog对象。作为示例,其处理的伪代码可以例如:
在上面的伪代码中,首先从AOP的执行上下文环境中获取被拦截到的业务方法,即java.lang.reflect.Method对象;
然后,从该对象中通过利用Java的反射机制获取到自定义的JavaAnnotation--BizAuditDescription,根据Annotation是否存在来判断是否记录操作日志以及日志的内容,即OperationLog对象的属性。由此,当记录操作日志的对象OperationLog产生异常时,对正常的业务逻辑无影响。
图3是根据本发明一个实施例的记录数据库审计日志的示意图。本领域的技术人员已知的是,在JEE应用程序中通常采用ORM的对象持久化技术。因此,在使用JPA技术进行数据操作时,实体对象在整个生命周期中经历了PrePersist、PostPersit、PostLoad,PreUpdate、PostUpdate、PreRemove、PostRemove等几个过程。记录数据库审计日志主要是记录数据实体对象的变化的过程,所以优选地选择PostPersit,PostUpdate,PostRemove作为记录数据库审计日志的切入点,通过实体对象监听器模块来完成对于实体对象的CRUD操作的审计日志。这里,可以理解的是,在实体对象监听器可以通过计算机程序代码实现,其可以包括PostPersit,PostUpdate,PostRemove等方法来执行记录数据库审计日志的逻辑,分别对应新增保存,更新,删除的数据库操作。这里,在三个步骤执行的过程之后记录日志。本领域的技术人员已知的是,这由JEE标准定义,可以由JEE的标准实现来完成。
以下描述作为数据库审计日志的AuditLog对象的产生。
首先说明对于关于实体对象的变化值(oldValue和newValue)的处理:
a、利用Java反射机制读取实体对象的属性名称,
b、利用Java反射机制根据属性名称获取该属性对应的值,
c、根据属性当前值与属性变更前的值,构造AuditLog对象。
作为示例,首先可以使用Java的反射机制读取实体对象的所有的属性名称;其次,利用反射机制根据属性名称获取该属性对应的值;最后遍历所有的属性值获取属性当前值与变更前的值,并且将这些值进行对比从而来构造AuditLog对象用于记录数据库审计日志。
例如,对于新增保存的情况:对应的AuditLog对象的oldValue值都是空,而newValue是新增对象的值。
对于更新的情况:对应的AuditLog对象的oldValue值为变更前的值,而newValue的值为变更后的值。
对于删除的情况:对应的AuditLog对象的oldValue值为删除前的值,而newValue的值就是为空。
由此,记录数据库审计日志的异常并不会导致业务逻辑处理的回滚,业务处理能正常处理完成。
本发明所公开的方法的优势在于相关联地进行记录操作日志记录数据库审计日志。换句话说,本发明的实施例对记录操作日志的OperationLog对象与用于记录数据库审计日志AuditLog对象通过自定义元数据进行相关联地生成。
如上所述,用于记录操作日志的OperationLog对象与用于记录数据库审计日志的AuditLog对象是单向一对多的关系。其中,OperationLog对象中的operationLogId属性与AuditLog对象中的operationId属性关联。
在本发明的一个实施例中,通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在利用EJB中提供的面向方面编程的实现,记录操作日志的过程中,将构造OperationLog对象产生的operationLogId属性值绑定到当前的执行线程上,
在分别在作为实体对象的生命周期的PostPersit,PostUpdate和PostRemove过程后,记录数据库审计日志的过程中,从该执行线程获取operationLogId属性值,以及将该operationLogId属性值传递给AuditLog对象的operationId属性值。
作为示例,对于OperationLog和AuditLog的operationId的传递过程可以通过如下步骤进行:
1、当记录操作日志产生operationLogId属性值时,将其绑定到当前的执行线程上;
2、在利用实体对象监听器模块记录数据库审计日志时,从执行线程中获取operationid属性值后绑定到AuditLog对象,用以维护一对多的关联;
3、当AuditLog对象处理完成后清理该线程中绑定的operationLogId属性值。
本发明的另一个实施例,涉及对OperationLog对象中的用户属性赋值。在该实施例中,OperationLog对象还包括用户属性。在某些情况下,在对操作日志和数据库审计日志的处理过程中可能需要获取用户的信息。本领域的技术人员所已知的是,基于B/S的JEE应用程序使用session机制来保存用户信息,通常在Web层获取session信息,而在逻辑层获取用户信息通常只能通过参数传递方式来完成。对于跨模块的信息传递也同样需要通过参数传递来完成。但是有时此类方式并不适用,所以在处理此类问题时本发明采用了通过Java的线程局部变量来绑定需要传递的数据,供该执行线程上的所有处理逻辑来使用。
因此,在基于B/S的JEE开发环境的情况下,该实施例在记录操作日志,即产生OperationLog对象时,进一步构造OperationLog对象,使其包括用户信息属性值,其中,从保存用户信息的session中获取用户信息属性值,并将用户信息属性值绑定到当前的执行线程上;在执行业务逻辑方法时,从该执行线程获取用户信息属性值,并利用该用户信息属性值进一步构造OperationLog对象。
作为示例,对于用户信息的处理过程可以包括如下过程:
1、用户登录B/S系统将用户信息放置在session中;
2、当用户每执行一个业务逻辑操作,从session中获取到用户信息将其绑定到当前的执行线程上(ThreadLocal变量);
3、业务逻辑执行时从该执行线程上获取到用户信息;
4、执行完成后清理该执行线程上的用户信息。
根据本发明的另一个实施例,可以在JEE开发环境下构建操作日志对象和数据库审计日志对象,其中,操作日志对象和所述数据库审计日志对象通过如上所述的自定义的元数据配置关联。该方法借助自定义的元数据操作日志对象和数据库审计日志对象,可以在紧密相关的逻辑模块内实现记录操作日志和记录数据库审计日志的操作,大大提高了系统开发的效率。
优选地,操作日志对象包括标识操作的operationLogId属性,
数据库审计日志对象包括标识操作的operationId属性,
如上所述地,该方法通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在构造操作日志对象产生operationLogId属性值时,将其绑定到当前的执行线程上;
在构造数据库审计日志对象时,从执行线程中获取operationid属性值后绑定到数据库审计日志对象,用以维护一对多的关联。
通过上文的描述可以理解的是,本发明还可以分别构建操作日志对象和数据库审计日志对象。
对于构建操作日志的情况,可以利用EJB中提供的面向方面编程的实现,并且基于Java反射机制获取操作日志对象的例如operationLogId属性值。
在一个优选的实施例中,操作日志对象进一步包括用户信息属性,如上所述,该方法可以通过下述步骤获得用户信息属性值:
a、当用户每执行一个业务逻辑操作,从session中获取到用户信息将其绑定到当前的执行线程上;
b、业务逻辑执行时从该执行线程上获取到用户信息。
对于构建数据库审计日志对象的情况,可以分别在作为实体对象的生命周期的PostPersit,PostUpdate和PostRemove过程后,构建数据库审计日志对象,其中,
构建数据库审计日志对象可以包括以下步骤:
a、利用Java反射机制读取实体对象的属性名称,
b、利用Java反射机制根据属性名称获取该属性对应的值,
c、根据属性当前值与属性变更前的值,构造构建数据库审计日志对象。
在一个优选的实施例中,数据库审计日志对象还可以进一步包括用户信息属性,其中,该方法通过下述步骤获得用户信息属性值:
a、当用户每执行一个业务逻辑操作,从session中获取到用户信息属性值将其绑定到当前的执行线程上;
b、业务逻辑执行时从该执行线程上获取用户信息属性值。
本领域技术人员可以理解的是,本发明的上述一个或多个方法逻辑、模块均可以通过计算机软件实现。
尽管已在本文中参看附图详细地描述本发明的说明性实施例,但本领域技术者应理解,本发明不限于那些精确实施例,且在不脱离由附加权利要求界定的本发明的范畴以及精神的情况下,可在其中实现各种变化以及修改。
Claims (4)
1.一种在JEE开发环境下记录操作日志和数据库审计日志的方法,其特征在于,包括以下步骤:
A、利用EJB中提供的面向方面编程的实现,记录操作日志,其中,
在记录操作日志时,利用Java反射机制读取业务逻辑方法的JavaAnnotation获得对于业务逻辑方法的描述,所述业务逻辑方法的描述至少限定标识操作的operationLogId属性值,
然后,利用operationLogId属性值构造OperationLog对象;
B、执行业务逻辑方法;
C、分别在作为实体对象的生命周期的PostPersit,PostUpdate和PostRemove过程后,记录数据库审计日志,其中,
记录数据库审计日志包括以下步骤:
a、利用Java反射机制读取实体对象的属性名称,
b、利用Java反射机制根据属性名称获取该属性对应的值,
c、根据属性当前值与属性变更前的值,构造AuditLog对象,其中,
OperationLog对象与AuditLog对象是一对多的关系,
OperationLog对象包括标识操作的operationLogId属性,
AuditLog对象包括标识操作的operationId属性,其中,
所述方法使该operationLogId属性与该operationId属性关联。
2.如权利要求1所述的方法,其特征在于,在基于B/S的JEE开发环境的情况下,所述方法在步骤B中进一步构造OperationLog对象,使其包括用户信息属性值,其中,
从保存用户信息的session中获取用户信息属性值,并将用户信息属性值绑定到当前的执行线程上;
在执行业务逻辑方法时,从该执行线程获取用户信息属性值,并利用该用户信息属性值进一步构造OperationLog对象。
3.如权利要求1所述的方法,其特征在于,通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在步骤A中,将构造OperationLog对象产生的operationLogId属性值绑定到当前的执行线程上,
在步骤C中,从该执行线程获取operationLogId属性值,以及将该operationLogId属性值传递给AuditLog对象的operationId属性值。
4.一种在JEE开发环境下基于面向方面编程构建操作日志对象和数据库审计日志对象的方法,其特征在于,所述操作日志对象和所述数据库审计日志对象通过自定义的元数据配置关联,其中,
所述操作日志对象包括标识操作的operationLogId属性,
所述数据库审计日志对象包括标识操作的operationId属性,
其中,该方法通过以下步骤使所述operationLogId属性与所述operationId属性关联:
在构造操作日志对象产生operationLogId属性值时,将其绑定到当前的执行线程上;
在构造数据库审计日志对象时,从执行线程中获取operationid属性值后绑定到数据库审计日志对象,用以维护一对多的关联。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110143035.7A CN102810057B (zh) | 2011-05-30 | 2011-05-30 | 一种记录日志的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110143035.7A CN102810057B (zh) | 2011-05-30 | 2011-05-30 | 一种记录日志的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102810057A CN102810057A (zh) | 2012-12-05 |
CN102810057B true CN102810057B (zh) | 2016-03-09 |
Family
ID=47233766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110143035.7A Active CN102810057B (zh) | 2011-05-30 | 2011-05-30 | 一种记录日志的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102810057B (zh) |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019824B (zh) * | 2012-12-21 | 2015-11-25 | 曙光信息产业(北京)有限公司 | 元数据服务器下日志系统的多进程处理方法和系统 |
EP2951680B1 (en) | 2013-01-30 | 2020-12-23 | EntIT Software LLC | Acquiring identification of an application lifecycle management entity associated with similar code |
CN103559118B (zh) * | 2013-10-12 | 2016-02-03 | 福建亿榕信息技术有限公司 | 一种基于aop与注解信息系统的安全审计方法 |
CN103544016A (zh) * | 2013-10-28 | 2014-01-29 | 珠海许继芝电网自动化有限公司 | 一种基于java反射技术的服务注册配置方法及系统 |
CN104881284A (zh) * | 2015-05-22 | 2015-09-02 | 国云科技股份有限公司 | 一种高效的日志操作方法 |
CN106649061B (zh) * | 2015-11-04 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种记录用户在web系统中的操作日志的方法与设备 |
CN105893016A (zh) * | 2015-12-11 | 2016-08-24 | 乐视网信息技术(北京)股份有限公司 | 基于mvc架构的日志记录系统及方法 |
CN108132873A (zh) * | 2016-12-01 | 2018-06-08 | 无锡中科西北星科技有限公司 | 系统过程日志打印与远程多终端日志调试控制系统 |
CN106528391A (zh) * | 2016-12-16 | 2017-03-22 | 郑州云海信息技术有限公司 | 一种ssr上的管理平台操作日志的记录方法 |
CN107122426A (zh) * | 2017-04-11 | 2017-09-01 | 上海众开信息科技有限公司 | 基于数据库的操作日志信息的监听获取方法及装置 |
CN107526654A (zh) * | 2017-08-05 | 2017-12-29 | 中山大学 | 一种基于网页的oracle数据库备份还原系统 |
CN107644107A (zh) * | 2017-10-19 | 2018-01-30 | 金蝶软件(中国)有限公司 | 一种内部审计日志的生成方法及相关装置 |
CN110895468A (zh) * | 2018-08-22 | 2020-03-20 | 北京京东尚科信息技术有限公司 | 实现业务增强的方法和装置 |
CN109240665A (zh) * | 2018-08-24 | 2019-01-18 | 北京北信源信息安全技术有限公司 | 日志记录方法、装置以及电子设备 |
CN109474669A (zh) * | 2018-10-19 | 2019-03-15 | 杭州安恒信息技术股份有限公司 | 一种高准确率的互联网应用系统的关联方法 |
CN109446175A (zh) * | 2018-11-12 | 2019-03-08 | 郑州云海信息技术有限公司 | 一种构建关键操作的日志对象的方法和装置 |
CN109783458B (zh) * | 2018-12-18 | 2022-03-15 | 大唐软件技术股份有限公司 | 一种记录日志变更的方法及装置 |
CN113407619A (zh) * | 2020-03-16 | 2021-09-17 | 北京沃东天骏信息技术有限公司 | 构建数据的方法和装置以及数据库之间同步数据的系统 |
CN111881102A (zh) * | 2020-07-29 | 2020-11-03 | 浪潮云信息技术股份公司 | 基于aop切面采集审计日志的方法、装置及可读介质 |
CN113778570B (zh) * | 2021-09-10 | 2023-06-06 | 四川新网银行股份有限公司 | 一种基于AOP+ThreadLocal技术的分布式系统断点重试方法 |
CN114579212A (zh) * | 2022-02-24 | 2022-06-03 | 北京航星永志科技有限公司 | 一种系统日志记录方法、装置、电子设备与存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100499482C (zh) * | 2003-07-07 | 2009-06-10 | 华为技术有限公司 | 一种在网络管理系统中监控用户行为的方法 |
-
2011
- 2011-05-30 CN CN201110143035.7A patent/CN102810057B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN102810057A (zh) | 2012-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102810057B (zh) | 一种记录日志的方法 | |
US7694272B2 (en) | Method, a language and a system for the definition and implementation of software solutions by using a visualizable computer executable modeling language | |
US8065315B2 (en) | Solution search for software support | |
US7363578B2 (en) | Method and apparatus for mapping a data model to a user interface model | |
CN101477462A (zh) | 一种用于动态改变系统行为的模型驱动软件开发方法 | |
AU2017216248B2 (en) | Systems and methods for generating electronic document templates and electronic documents | |
CN101454779A (zh) | 基于搜索的应用开发框架 | |
EP2628071A1 (en) | Method and system for developing data integration applications with reusable semantic types to represent and process application data | |
WO2006026659A2 (en) | Services oriented architecture for data integration services | |
Fill | SeMFIS: a flexible engineering platform for semantic annotations of conceptual models | |
CN102542382A (zh) | 业务规则的管理方法和装置 | |
CN101246424A (zh) | 一种基于文件的菜单自动生成系统和方法 | |
CN106407170A (zh) | 数据报表快速生成方法及系统 | |
Molcho et al. | Computer aided manufacturability analysis: Closing the knowledge gap between the designer and the manufacturer | |
CN101546311A (zh) | 回收站的数据处理方法及数据处理装置 | |
CN104063495A (zh) | 表单扩展方法与表单扩展装置 | |
CN102567451A (zh) | 产生数据模型 | |
CN102222278A (zh) | 一种运维流程定制的方法及装置 | |
CN101000618A (zh) | 建立无连接的数据编程模型的方法、装置及其应用 | |
CN104573053A (zh) | 一种基于xml的配置项模板动态定制方法 | |
Eriksson et al. | The pluss toolkit? extending telelogic doors and ibm-rational rose to support product line use case modeling | |
CN101894317A (zh) | 数据变化驱动业务逻辑的方法和系统 | |
Hayder et al. | Object-Oriented Programming with PHP5 | |
Ivkovic et al. | Using formal concept analysis to establish model dependencies | |
Riva et al. | Establishing a software architecting environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |