本发明专利技术公开了一种基于Uliweb的表数据修改日志记录方法及系统,涉及软件技术领域,所述方法包括:当用户请求到达服务器时,线程处理中间件对用户请求进行预处理,将用户请求中的用户信息记录至本地变量;服务器处理所述用户请求,获得数据变化信息;根据数据变化信息的类型,发送不同的请求指令,并将数据变化信息作为指令参数;代码应用程序通过指令分发器接收所述请求指令,解析指令参数,获取所述数据变化信息;读取所述本地变量中的用户信息,并将所述用户信息和所述数据变化信息记录至日志文件中。解决了现有技术无法记录或者不方便记录数据变化日志,对代码的侵入程度高,解析难度大,不能作为审计的依据的技术问题。不能作为审计的依据的技术问题。不能作为审计的依据的技术问题。
【技术实现步骤摘要】
一种基于Uliweb的表数据修改日志记录方法及系统
[0001]本专利技术涉及软件
,尤其涉及一种基于Uliweb的表数据修改日志记录方法及系统。
技术介绍
[0002]在一个业务系统中,由于用户界面操作、API接口调用或者其他原因导致数据库中的数据发生变化时,这些数据修改内容是非常重要的审计依据和发生异常情况时的问题排查依据,需要将其记录下来。
[0003]要将数据的修改内容记录到日志中,一般来说,有两种方式:第一种方式是在所有可能触发数据变化的时机编写代码,先将变化前的数据读出来保存在临时变量中,然后将变化前后的数据各个字段进行比对,找出前后的差异,手动将差异记录到文件或者其他载体,最后将变化后的数据保存到数据库。第二种方式是不需要侵入业务代码,通过分析数据库的二进制日志(Binlog),从中解析出数据的变化情况。
[0004]然而,发现上述方式至少存在如下技术问题:
[0005]现有技术在使用基于Uliweb框架开发的网络服务运行过程中,当数据库表中的数据发生变化时,无法记录或者不方便记录数据变化日志,需要在引起数据变化的时机编写代码,对代码的侵入程度高,后续的维护难度大,解析难度大,并且Binlog中没有操作人的相关信息,不能作为审计的依据。
技术实现思路
[0006]本申请通过提供一种基于Uliweb的表数据修改日志记录方法及系统,解决了现有技术无法记录或者不方便记录数据变化日志,需要在引起数据变化的时机编写代码,对代码的侵入程度高,后续的维护难度大,解析难度大,并且Binlog中没有操作人的相关信息,不能作为审计的依据的技术问题,达到以独立app的形式嵌入项目代码中,代码侵入程度低,不需要对原有项目代码进行修改,不需要解析Binlog,实现难度低,而且可以获取页面操作的操作人信息,作为审计的依据,从而实现对项目中所有数据变化自动记录日志的技术效果。
[0007]鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的方法。
[0008]第一方面,本申请提供了一种基于Uliweb的表数据修改日志记录方法,所述方法包括:获得用户请求;当所述用户请求到达服务器时,线程处理中间件对所述用户请求进行预处理,将所述用户请求中的用户信息记录至本地变量;所述服务器处理所述用户请求,获得数据变化信息;根据所述数据变化信息的类型,发送不同的请求指令,并将所述数据变化信息作为指令参数;代码应用程序通过指令分发器接收所述请求指令,解析所述指令参数,获取所述数据变化信息;读取所述本地变量中的所述用户信息,并将所述用户信息和所述数据变化信息记录至日志文件中。
[0009]另一方面,本申请还提供了一种基于Uliweb的表数据修改日志记录系统,所述系统包括:请求获得模块,用于获得用户请求;请求预处理模块,用于当所述用户请求到达服务器时,线程处理中间件对所述用户请求进行预处理,将所述用户请求中的用户信息记录至本地变量;数据变化信息获得模块,用于所述服务器处理所述用户请求,获得数据变化信息;请求指令发送模块,用于根据所述数据变化信息的类型,发送不同的请求指令,并将所述数据变化信息作为指令参数;指令参数解析模块,用于代码应用程序通过指令分发器接收所述请求指令,解析所述指令参数,获取所述数据变化信息;日志记录模块,用于读取所述本地变量中的所述用户信息,并将所述用户信息和所述数据变化信息记录至日志文件中。
[0010]第三方面,本申请提供了一种电子设备,包括总线、收发器、存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述收发器、所述存储器和所述处理器通过所述总线相连,所述计算机程序被所述处理器执行时实现上述任意一项所述方法中的步骤。
[0011]第四方面,本申请还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述方法中的步骤。
[0012]本申请中提供的一个或多个技术方案,至少具有如下技术效果或优点:
[0013]由于采用了当用户请求到达服务器时,线程处理中间件对用户请求进行预处理,并将所述用户请求中的用户信息记录至本地变量,所述服务器处理所述用户请求,获得数据变化信息,再根据所述数据变化信息的类型,发送不同的请求指令,并将所述数据变化信息作为指令参数,代码应用程序通过指令分发器接收所述请求指令,解析所述指令参数,获取所述数据变化信息,读取所述本地变量中的所述用户信息,并将所述用户信息和所述数据变化信息记录至日志文件中的技术方案。进而达到以独立app的形式嵌入项目代码中,代码侵入程度低,不需要对原有项目代码进行修改,不需要解析Binlog,实现难度低,而且可以获取页面操作的操作人信息,作为审计的依据,从而实现对项目中所有数据变化自动记录日志的技术效果。
[0014]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
[0015]图1为本申请一种基于Uliweb的表数据修改日志记录方法的流程示意图;
[0016]图2为本申请实施例一种基于Uliweb的表数据修改日志记录方法的流程框图;
[0017]图3为本申请实施例一种基于Uliweb的表数据修改日志记录系统的结构示意图;
[0018]图4为本申请实施例示例性电子设备的结构示意图。
[0019]附图标记说明:请求获得单元11,请求预处理单元12,数据变化信息获得单元13,请求指令发送单元14,指令参数解析单元15,日志记录单元16,总线1110,处理器1120,收发器1130,总线接口1140,存储器1150,操作系统1151,应用程序1152和用户接口1160。
具体实施方式
[0020]在本申请的描述中,所属
的技术人员应当知道,本申请可以实现为方法、装置、电子设备及计算机可读存储介质。因此,本申请可以具体实现为以下形式:完全的硬件、完全的软件(包括固件、驻留软件、微代码等)、硬件和软件结合的形式。此外,在一些实施例中,本申请还可以实现为在一个或多个计算机可读存储介质中的计算机程序产品的形式,该计算机可读存储介质中包含计算机程序代码。
[0021]上述计算机可读存储介质可以采用一个或多个计算机可读存储介质的任意组合。计算机可读存储介质包括:电、磁、光、电磁、红外或半导体的系统、装置或器件,或者以上任意的组合。计算机可读存储介质更具体的例子包括:便携式计算机磁盘、硬盘、随机存取存储器、只读存储器、可擦除可编程只读存储器、闪存、光纤、光盘只读存储器、光存储器件、磁存储器件或以上任意组合。在本申请中,计算机可读存储介质可以是任意包含或存储程序的有形介质,该程序可以被指令执行系统、装置、器件使用或与其结合使用。
[0022]本申请技术方案中对数据的获取、存储、使用、处理等均符合国家法律的相关规定。
...
【技术保护点】
【技术特征摘要】
1.一种基于Uliweb的表数据修改日志记录方法,其特征在于,所述方法包括:获得用户请求;当所述用户请求到达服务器时,线程处理中间件对所述用户请求进行预处理,将所述用户请求中的用户信息记录至本地变量;所述服务器处理所述用户请求,获得数据变化信息;根据所述数据变化信息的类型,发送不同的请求指令,并将所述数据变化信息作为指令参数;代码应用程序通过指令分发器接收所述请求指令,解析所述指令参数,获取所述数据变化信息;读取所述本地变量中的所述用户信息,并将所述用户信息和所述数据变化信息记录至日志文件中。2.如权利要求1所述的方法,其特征在于,所述根据所述数据变化信息的类型,发送不同的请求指令,包括:判断所述数据变化信息的类型是否为删除数据;如果所述类型为删除数据,发送post_delete指令。3.如权利要求2所述的方法,其特征在于,所述方法包括:如果所述类型不为删除数据,发送post_save指令。4.如权利要求1所述的方法,其特征在于,所述方法包括:所述代码应用程序包括所述线程处理中间件和视图,其中,所述线程处理中间件对所述用户请求进行预处理,所述视图用于处理日志的代码逻辑。5.如权利要求4所述的方法,其特征在于,所述方法包括:当Uliweb服务启动时,加载所述代码应用程序;将所述代码应用程序的所述视图中的process_post_save方法与所述post_save指令进行绑定,process_post_delete方法与所述post_delete指令进行绑定,注册到所述指令分发器中,同时注册所述线程处理中间件的Middleware中间件。6.如权利要求1所述的方法,其特征在于...
【专利技术属性】
技术研发人员:常亮,刘伟,谢蓓,李卓,
申请(专利权)人:建信金融科技有限责任公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。