一种记录用户在web系统中的操作日志的方法与设备
技术领域
本申请涉及计算机领域,尤其涉及一种记录用户在web系统中的操作日志的技术。
背景技术
互联网技术的发展给人们带来了巨大的便捷,而人们也越来越多地访问各类web页面,提供访问服务的web系统面临着日益增加的压力。通过记录用户操作日志,可以查看在web系统中被用户操作过的数据,可以追溯数据的修改记录,从而在定位问题的过程中起到关键作用。现有的记录用户操作日志的技术中,普遍针对具体业务场景记录用户操作日志,将用户修改前和修改后的数据记录下来。然而,这会使得日志代码入侵到业务代码中,增加了web系统的负担,而且不具备通用性,每新增一个业务都需要增加相应的日志记录。
发明内容
本申请的一个目的是提供一种记录用户在web系统中的操作日志的方法与设备,以解决日志代码入侵到业务代码的问题。
根据本申请的一个方面,提供了一种记录用户在web系统中的操作日志的方法,其中,该方法包括:
在用户登录拦截模块的过程中获取对应的用户信息;
通过所述拦截模块获取所述用户登录后在web系统中的操作信息;
根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
根据本申请的另一个方面,提供了一种记录用户在web系统中的操作日志的设备,其中,该设备包括:
用户信息获取装置,用于在用户登录拦截模块的过程中获取对应的用户信息;
操作信息获取装置,用于通过所述拦截模块获取所述用户登录后在web系统中的操作信息;
操作日志生成装置,用于根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
与现有技术相比,本申请在用户登录拦截模块的过程中获取对应的用户信息,通过所述拦截模块获取用户登录后在web系统中的操作信息,然后根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志;本申请通过AOP技术记录所述操作信息,其中,所述操作信息包括用户操作所调用的相关程序的运行状态的相关信息,避免了日志代码入侵业务代码的情况,通用性强且易于维护。进一步地,本申请将所述操作信息对应的时间信息通过添加时间戳的方式与序列化的所述操作信息及所述用户信息相关联,为检索用户操作日志提供了方便。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种记录用户在web系统中的操作日志的方法流程图;
图2示出根据本申请一个优选实施例的一种记录用户在web系统中的操作日志的方法流程图;
图3示出根据本申请另一个方面的一种记录用户在web系统中的操作日志的设备示意图;
图4示出根据本申请一个优选实施例的一种记录用户在web系统中的操作日志的设备示意图。
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本申请作进一步详细描述。
在本申请一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
图1示出根据本申请一个方面的一种记录用户在web系统中的操作日志的方法流程图。
该方法包括步骤S11、步骤S12和步骤S13。具体地,在步骤S11中,设备1在用户登录拦截模块的过程中获取对应的用户信息;在步骤S12中,设备1通过所述拦截模块获取所述用户登录后在web系统中的操作信息;在步骤S13中,设备1根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
设备1的各个步骤之间是持续不断工作的。具体地,在步骤S11中,设备1持续在用户登录拦截模块的过程中获取对应的用户信息;在步骤S12中,设备1持续通过所述拦截模块获取所述用户登录后在web系统中的操作信息;在步骤S13中,设备1持续根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志;直至所述设备1停止工作。
在步骤S11中,设备1在用户登录拦截模块的过程中获取对应的用户信息。
在此,所述用户信息包括用户对应的账号信息和密码信息。在用户进行登录操作的过程中,通过所述拦截模块获取用户输入的所述用户信息。
优选地,在步骤S11中,设备1在用户登录拦截模块的过程中,获取对应的用户信息,并将所述用户信息存储于所述拦截模块对应的线程局部变量。
在具体的实施例中,所述web系统基于MVC(Model View Controller,模型-视图-控制器)框架,在此,利用基于MVC框架开发的拦截机制。在用户登录的过程中,获取所述用户信息后,将其存储于线程局部变量(ThreadLocal),那么该线程中的所有方法都能从中获取所述用户信息。
在步骤S12中,设备1通过所述拦截模块获取所述用户登录后在web系统中的操作信息。
在此,用户登录后在web系统中进行的各类操作,例如修改个人资料、搜索关键词等。根据用户操作会调用相关程序,通过所述拦截模块获取所述操作信息。
具体地,所述操作信息包括以下至少任一项:所述用户在所述web系统中所调用应用的应用信息;所述用户在所述web系统中调用应用时的调用参数信息;所述用户在所述web系统中调用应用时的返回结果信息;所述用户在所述web系统中调用应用时的调用错误信息。
例如,所述操作信息可以包括用户操作所调用的相关程序的运行状态的相关信息。所述用户在所述web系统中所调用应用的应用信息包括用户操作所调用的相关程序中的类、方法等。所调用的相关程序中的方法带有参数。用户的某一次的请求由某个类的某个方法执行,并在执行后返回结果和/或错误信息。即,所述操作信息可以包括:用户操作所调用的相关程序中的类、方法;用户操作所调用的相关程序中的方法所带有的参数;由用户操作所调用的相关程序中的方法执行后返回的结果和/或错误信息。
在步骤S13中,设备1根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
在此,所述用户信息为所述操作信息对应的用户信息。所述操作信息对应的时间信息包括用户执行操作的时间。
具体地,在步骤S13中,设备1序列化所述操作信息及所述用户信息;将所述操作信息对应的时间信息通过添加时间戳的方式与序列化的所述操作信息及所述用户信息相关联,以获得对应的用户操作日志。
在具体的实施例中,先将所述操作信息及所述用户信息序列化,再为序列化的所述操作信息及所述用户信息添加时间戳后存入对应的用户操作日志。优选地,所述时间戳独立于序列化的所述操作信息及所述用户信息,以方便后续将时间信息作为主要检索字段对用户操作日志进行检索。
优选地,所述序列化的所述操作信息及所述用户信息基于JSON格式。
在此,JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。优选地,将所述操作信息及所述用户信息以JSON格式序列化。
当然,也可以采用XML(可扩展标记语言)等其他数据交换格式,本领域技术人员应能理解上述数据交换格式仅为举例,其他现有的或今后可能出现的数据交换格式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
图2示出根据本申请一个优选实施例的一种记录用户在web系统中的操作日志的方法流程图。
该方法包括步骤S21、步骤S22、步骤S23和步骤S24。在此,步骤S21、步骤S23与图1中步骤S11、步骤S13的内容相同或基本相同,为简明起见,不再赘述。
具体地,所述web系统基于MVC框架;在步骤S24中,设备1通过所述web系统基于MVC框架的控制器配置所述拦截模块的切面;在步骤S22中,设备1通过配置后的所述拦截模块获取所述用户登录后在所述web系统中的操作信息。
在具体的实施例中,所述控制器是MVC(Model View Controller,模型-视图-控制器)框架中的控制器(Controller),通常负责从视图读取数据,控制用户输入,并向模型发送数据。在此,应用了AOP(Aspect-OrientedProgramming,面向切面编程)技术,所述配置后的拦截模块可以包括AOP拦截器,在控制器上设置AOP拦截器以获取所述操作信息。
例如,可以通过如下代码配置bean和pointcut确定实施切面的位置。
例如,下面是典型的切面代码实现。
图3示出根据本申请另一个方面的一种记录用户在web系统中的操作日志的设备1,其中,设备1包括用户信息获取装置11、操作信息获取装置12和操作日志生成装置13。
具体地,所述用户信息获取装置11在用户登录拦截模块的过程中获取对应的用户信息;所述操作信息获取装置12通过所述拦截模块获取所述用户登录后在web系统中的操作信息;所述操作日志生成装置13根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
在此,所述设备1包括但不限于用户设备、网络设备、或用户设备与网络设备通过网络相集成所构成的设备。所述用户设备其包括但不限于任何一种可与用户通过触摸板进行人机交互的移动电子产品,例如智能手机、平板电脑等,所述移动电子产品可以采用任意操作系统,如android操作系统、iOS操作系统等。其中,所述网络设备包括一种能够按照事先设定或存储的指令,自动进行数值计算和信息处理的电子设备,其硬件包括但不限于微处理器、专用集成电路(ASIC)、可编程门阵列(FPGA)、数字处理器(DSP)、嵌入式设备等。所述网络设备其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云;在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。所述网络包括但不限于互联网、广域网、城域网、局域网、VPN网络、无线自组织网络(Ad Hoc网络)等。优选地,设备1还可以是运行于所述用户设备、网络设备、或用户设备与网络设备、网络设备、触摸终端或网络设备与触摸终端通过网络相集成所构成的设备上的脚本程序。当然,本领域技术人员应能理解上述设备1仅为举例,其他现有的或今后可能出现的设备1如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
上述各装置之间是持续不断工作的,在此,本领域技术人员应理解“持续”是指上述各装置分别实时地或者按照设定的或实时调整的工作模式要求,例如所述用户信息获取装置11持续在用户登录拦截模块的过程中获取对应的用户信息;所述操作信息获取装置12持续通过所述拦截模块获取所述用户登录后在web系统中的操作信息;所述操作日志生成装置13持续根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志;直至所述设备1停止工作。
所述用户信息获取装置11在用户登录拦截模块的过程中获取对应的用户信息。
在此,所述用户信息包括用户对应的账号信息和密码信息。在用户进行登录操作的过程中,通过所述拦截模块获取用户输入的所述用户信息。
优选地,所述用户信息获取装置11在用户登录拦截模块的过程中,获取对应的用户信息,并将所述用户信息存储于所述拦截模块对应的线程局部变量。
在具体的实施例中,所述web系统基于MVC(Model View Controller,模型-视图-控制器)框架,在此,利用基于MVC框架开发的拦截机制。在用户登录的过程中,获取所述用户信息后,将其存储于线程局部变量(ThreadLocal),那么该线程中的所有方法都能从中获取所述用户信息。
所述操作信息获取装置12通过所述拦截模块获取所述用户登录后在web系统中的操作信息。
在此,用户登录后在web系统中进行的各类操作,例如修改个人资料、搜索关键词等。根据用户操作会调用相关程序,通过所述拦截模块获取所述操作信息。
具体地,所述操作信息包括以下至少任一项:所述用户在所述web系统中所调用应用的应用信息;所述用户在所述web系统中调用应用时的调用参数信息;所述用户在所述web系统中调用应用时的返回结果信息;所述用户在所述web系统中调用应用时的调用错误信息。
例如,所述操作信息可以包括用户操作所调用的相关程序的运行状态的相关信息。所述用户在所述web系统中所调用应用的应用信息包括用户操作所调用的相关程序中的类、方法等。所调用的相关程序中的方法带有参数。用户的某一次的请求由某个类的某个方法执行,并在执行后返回结果和/或错误信息。即,所述操作信息可以包括:用户操作所调用的相关程序中的类、方法;用户操作所调用的相关程序中的方法所带有的参数;由用户操作所调用的相关程序中的方法执行后返回的结果和/或错误信息。
所述操作日志生成装置13根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志。
在此,所述用户信息为所述操作信息对应的用户信息。所述操作信息对应的时间信息包括用户执行操作的时间。
具体地,所述操作日志生成装置13序列化所述操作信息及所述用户信息;将所述操作信息对应的时间信息通过添加时间戳的方式与序列化的所述操作信息及所述用户信息相关联,以获得对应的用户操作日志。
在具体的实施例中,先将所述操作信息及所述用户信息序列化,再为序列化的所述操作信息及所述用户信息添加时间戳后存入对应的用户操作日志。优选地,所述时间戳独立于序列化的所述操作信息及所述用户信息,以方便后续将时间信息作为主要检索字段对用户操作日志进行检索。
优选地,所述序列化的所述操作信息及所述用户信息基于JSON格式。
在此,JSON(JavaScript Object Notation,JavaScript对象表示法)是一种轻量级的数据交换格式。优选地,将所述操作信息及所述用户信息以JSON格式序列化。
当然,也可以采用XML(可扩展标记语言)等其他数据交换格式,本领域技术人员应能理解上述数据交换格式仅为举例,其他现有的或今后可能出现的数据交换格式如可适用于本申请,也应包含在本申请保护范围以内,并在此以引用方式包含于此。
图4示出根据本申请一个优选实施例的一种记录用户在web系统中的操作日志的设备1,其中,设备1包括用户信息获取装置11’、操作信息获取装置12’、操作日志生成装置13’和配置装置14’。
在此,所述用户信息获取装置11’、操作日志生成装置13’与图3中用户信息获取装置11、操作日志生成装置13的内容相同或基本相同,为简明起见,不再赘述。
具体地,所述web系统基于MVC框架;配置装置14’通过所述web系统基于MVC框架的控制器配置所述拦截模块的切面;所述操作信息获取装置12’通过配置后的所述拦截模块获取所述用户登录后在所述web系统中的操作信息。
在具体的实施例中,所述控制器是MVC(Model View Controller,模型-视图-控制器)框架中的控制器(Controller),通常负责从视图读取数据,控制用户输入,并向模型发送数据。在此,应用了AOP(Aspect-Oriented Programming,面向切面编程)技术,所述配置后的拦截模块可以包括AOP拦截器,在控制器上设置AOP拦截器以获取所述操作信息。
例如,可以通过如下代码配置bean和pointcut确定实施切面的位置。
例如,下面是典型的切面代码实现。
与现有技术相比,本申请在用户登录拦截模块的过程中获取对应的用户信息,通过所述拦截模块获取用户登录后在web系统中的操作信息,然后根据所述操作信息、所述用户信息以及所述操作信息对应的时间信息生成对应的用户操作日志;本申请通过AOP技术记录所述操作信息,其中,所述操作信息包括用户操作所调用的相关程序的运行状态的相关信息,避免了日志代码入侵业务代码的情况,通用性强且易于维护。进一步地,本申请将所述操作信息对应的时间信息通过添加时间戳的方式与序列化的所述操作信息及所述用户信息相关联,为检索用户操作日志提供了方便。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
需要注意的是,本申请可在软件和/或软件与硬件的组合体中被实施,例如,可采用专用集成电路(ASIC)、通用目的计算机或任何其他类似硬件设备来实现。在一个实施例中,本申请的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本申请的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本申请的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。
另外,本申请的一部分可被应用为计算机程序产品,例如计算机程序指令,当其被计算机执行时,通过该计算机的操作,可以调用或提供根据本申请的方法和/或技术方案。而调用本申请的方法的程序指令,可能被存储在固定的或可移动的记录介质中,和/或通过广播或其他信号承载媒体中的数据流而被传输,和/或被存储在根据所述程序指令运行的计算机设备的工作存储器中。在此,根据本申请的一个实施例包括一个装置,该装置包括用于存储计算机程序指令的存储器和用于执行程序指令的处理器,其中,当该计算机程序指令被该处理器执行时,触发该装置运行基于前述根据本申请的多个实施例的方法和/或技术方案。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其他的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。