CN114650236A - 一种日志处理方法、装置及存储介质 - Google Patents
一种日志处理方法、装置及存储介质 Download PDFInfo
- Publication number
- CN114650236A CN114650236A CN202011503247.7A CN202011503247A CN114650236A CN 114650236 A CN114650236 A CN 114650236A CN 202011503247 A CN202011503247 A CN 202011503247A CN 114650236 A CN114650236 A CN 114650236A
- Authority
- CN
- China
- Prior art keywords
- log
- end page
- server
- request
- processing method
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 41
- 238000000034 method Methods 0.000 claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 28
- 238000012544 monitoring process Methods 0.000 claims abstract description 21
- 230000006870 function Effects 0.000 claims description 73
- 238000004891 communication Methods 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 8
- 230000004931 aggregating effect Effects 0.000 claims description 3
- 230000008569 process Effects 0.000 description 12
- 230000002776 aggregation Effects 0.000 description 9
- 238000004220 aggregation Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000012423 maintenance Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 230000000875 corresponding effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000012098 association analyses Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 210000001503 joint Anatomy 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0677—Localisation of faults
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/069—Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0823—Errors, e.g. transmission errors
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Abstract
本申请实施例公开了一种日志处理方法、装置及存储介质,所述方法包括:通过事件监听函数收集前端页面日志;将所述前端页面日志发送至服务器;创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。通过本申请实施例提供的日志处理方法可以实现前端页面日志和服务器日志之间的关联。
Description
技术领域
本申请涉及计算机数据处理技术领域,尤其涉及一种日志处理方法、装置及存储介质。
背景技术
在一个信息系统里,日志有着至关重要的作用,日志可以记录系统的所有行为,可以通过日志中记录的行为分析系统的使用情况,特别是系统使用中出现的异常问题等,开发人员通过这些日志可以对异常问题进行定位和处理,进而可以分析系统可优化的方向。
在信息系统中,记录日志的方式多种多样,并且前端日志不易归档,以及日志监控机制不够完善,从而无法获取完整的前端日志,此外,前端日志和后端日志不能很好的关联分析。因此,无论是开发人员还是运维人员都无法准确的定位问题、复现问题。
发明内容
有鉴于此,本申请实施例为解决现有技术中存在的至少一个问题而提供一种日志处理方法、装置及存储介质。
为达到上述目的,本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种日志处理方法,所述方法包括:
通过事件监听函数收集前端页面日志;
将所述前端页面日志发送至服务器;
创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述创建异步更新请求,将所述异步更新请求发送至服务器,包括:
创建XMLHttpRequest对象;
调用所述XMLHttpRequest对象的初始open函数,所述open函数用于将所述请求标识写入HTTP请求消息的头部;
调用所述XMLHttpRequest对象的发送send函数,所述send函数用于将所述HTTP请求消息发送至服务器。
在一种可选的实施方式中,所述请求标识和前端页面产生的所述前端页面日志中的页面标识相同。
在一种可选的实施方式中,所述通过事件监听函数收集前端页面日志之前,所述方法还包括:
调用日志记录器,获得日志收集策略;
所述通过事件监听函数收集前端页面日志,包括:
基于所述日志收集策略,通过事件监听函数收集前端页面日志。
在一种可选的实施方式中,所述调用日志记录器,获得日志收集策略之前,所述方法还包括:
在前端页面配置日志记录器,并将所述日志记录器挂载到window对象上。
在一种可选的实施方式中,所述将所述前端页面日志发送至服务器,包括:
将所述前端页面日志存储到本地数据库;
按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志发送至所述服务器。
在一种可选的实施方式中,所述事件监听函数包括错误error事件监听函数和未处理的拒绝unhandledRejection事件监听函数。
第二方面,本申请实施例提供一种日志处理方法,所述方法包括:
接收前端页面发送的前端页面日志;
接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志,包括:
接收所述前端页面发送的HTTP请求消息,所述HTTP请求消息的头部携带所述请求标识;
基于所述请求标识和服务器的调用链标识,关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述方法还包括:
将关联在一起的所述前端页面日志和所述服务器日志聚合在一起,得到聚合日志,对所述聚合日志进行分析。
第三方面,本申请实施例中提供一种日志处理装置,所述装置包括:
日志收集单元,用于通过事件监听函数收集前端页面日志;
日志发送单元,用于将所述前端页面日志发送至服务器;
请求单元,用于创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述请求单元,具体用于创建XMLHttpRequest对象;
调用所述XMLHttpRequest对象的初始open函数,所述open函数用于将所述请求标识写入HTTP请求消息的头部;
调用所述XMLHttpRequest对象的发送send函数,所述send函数用于将所述HTTP请求消息发送至服务器。
在一种可选的实施方式中,所述请求标识和前端页面产生的所述前端页面日志中的页面标识相同。
在一种可选的实施方式中,所述装置还包括:
调用单元,用于调用日志记录器,获得日志收集策略;
所述日志收集单元,具体用于基于所述日志收集策略,通过事件监听函数收集前端页面日志。
在一种可选的实施方式中,所述装置还包括:
配置单元,用于在前端页面配置日志记录器,并将所述日志记录器挂载到window对象上。
在一种可选的实施方式中,所述日志发送单元,具体用于将所述前端页面日志存储到本地数据库;
按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志发送至所述服务器。
在一种可选的实施方式中,所述事件监听函数包括错误error事件监听函数和未处理的拒绝unhandledRejection事件监听函数。
第四方面,本申请实施例提供一种日志处理装置,所述装置包括:
接收单元,用于接收前端页面发送的前端页面日志;
关联单元,用于接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述关联单元,具体用于接收所述前端页面发送的HTTP请求消息,所述HTTP请求消息的头部携带所述请求标识;
基于所述请求标识和服务器的调用链标识,关联所述前端页面日志和服务器日志。
在一种可选的实施方式中,所述装置还包括:
聚合分析单元,用于将关联在一起的所述前端页面日志和所述服务器日志聚合在一起,得到聚合日志,对所述聚合日志进行分析。
第五方面,本申请实施例提供一种电子设备,所述电子设备包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现第一方面所述的日志处理方法。
第六方面,本申请实施例提供一种服务器,所述服务器包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现第二方面所述的日志处理方法。
第七方面,本申请实施例提供一种存储介质,所述存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时,实现第一方面所述的日志处理方法、或第二方面所述的日志处理方法。
本申请实施例的技术方案,先通过事件监听函数将前端页面产生的前端页面日志收集起来,再通过异步更新请求关联所述前端页面日志和服务器日志,如此,可以将用户在前端页面产生的日志和服务器产生的日志进行关联,开发人员可以得到完整的日志,从而便于开发人员进行问题定位和处理。
附图说明
图1为本申请实施例提供的一种日志处理方法的流程示意图;
图2为本申请实施例提供的日志处理方法的整体架构图;
图3为本申请实施例提供的一种日志处理方法的流程示意图;
图4为本申请一具体示例提供的日志处理方法的整体架构图;
图5为本申请实施例提供的一种日志处理装置的组成结构示意图;
图6为本申请实施例提供的一种日志处理装置的组成结构示意图;
图7为本申请实施例提供的一种电子设备的具体硬件结构;
图8为本申请实施例提供的一种服务器的具体硬件结构。
具体实施方式
下面将参照附图更详细地描述本申请公开的示例性实施方式。虽然附图中显示了本申请的示例性实施方式,然而应当理解,可以以各种形式实现本申请,而不应被这里阐述的具体实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本申请,并且能够将本申请公开的范围完整的传达给本领域的技术人员。
在下文的描述中,给出了大量具体的细节以便提供对本申请更为彻底的理解。然而,对于本领域技术人员而言显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述;即,这里不描述实际实施例的全部特征,不详细描述公知的功能和结构。
在这个大前端和无服务器(Serverless)的时代,前端开发的代码量越来越大,复杂度也越来越高。前端页面的问题定位也耗费着大量的时间和人力。通常线上服务出现问题,可以直接通过查看服务的日志的方式进行问题的定位,然而,对于线上的前端页面问题,通常只能通过与用户沟通的方式来获取异常发生前后的详细过程,然后开发人员通过本地模拟,以便复现问题。对于那些本地模拟无法复现的问题好比“断了线的风筝”,让人无计可施,也无法处理。如果有办法获取到问题事发时完整的日志以及用户环境的上下文信息,就能够帮助开发人员快速了解并还原问题的事发情景,可以更有效地定位和排查问题,让“风筝”最终被拉回到开发者手里。鉴于以上前端定位问题过程中的问题,前端的日志方案应运而生。在现有的大部多数前端技术架构中,前端日志一般是停留在用户侧的浏览器中,当然也有一些大型系统会设有日志收集平台用以收集前端日志。近年来,出现了很多不同的前端日志处理方法:
(1)一种现有的前端日志处理方法是前端开发人员在浏览器自带的控制台中进行打断点调试定位,或者是通过在代码中设置相关的打印输出,再在控制台中查看相应的输出记录,这种前端问题定位的方法显然效率低下,并且进行问题定位所需的人力成本也很高。
(2)另一种现有的前端日志处理方法是在一些关键的流程点上采用手动埋点的方式,直接通过后端服务器提供的日志接口上报日志内容。这种方案通常存在以下问题:当前端的埋点日志变多时,会频繁调用日志接口,从而导致前端页面的响应变慢;由于没有对源数据进行加密处理,容易泄露客户的隐私。
为此,提出了本申请实施例的以下技术方案。
本申请实施例提供一种日志处理方法,图1为本申请实施例提供的一种日志处理方法的流程示意图,该方法主要包括以下步骤:
步骤101、通过事件监听函数收集前端页面日志。
步骤102、将所述前端页面日志发送至服务器。
在本申请实施例中,针对前端平台日志的收集,为了便于开发者的使用,本申请实施例中在前端页面配置日志记录器feLogger,并直接将日志记录器feLogger挂载到window对象上:window.feLogger=feLogger,这样就可以在各个前端页面中直接调用日志记录器feLogger,并且该日志记录器feLogger兼容各种前端平台框架。该日志记录器feLogger中包括自定义的日志收集策略,日志收集策略包括事件触发策略和手段触发策略。
在本申请实施例中,调用日志记录器feLogger,获得日志收集策略;基于所述日志收集策略,通过事件监听函数收集前端页面日志。这里,所述事件监听函数包括错误error事件监听函数和未处理的拒绝unhandledRejection事件监听函数。所述前端页面日志包括异常日志、接口日志、自定义日志等。本申请实施例中在前端页面日志的收集策略上,增加全局的error事件监听函数和unhandledRejection事件监听函数进行收集前端页面未捕获异常和Promise未捕获的异常,避免出现开发人员对于异常日志(前端页面日志)的遗漏上报。需要说明的是,这里除了事件监听函数外,还有前端平台自带的日志收集函数,如Promise函数。
在本申请实施例中,将所述前端页面日志存储到本地数据库;按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志发送至所述服务器。本申请实施例中采用本地日志存储与周期上报结合的策略对前端页面日志进行上报,以避免出现因频繁的调用日志接口而导致页面的响应变慢的问题。本申请实施例中先将前端页面日志以队列的数据结构存储在前端页面的本地数据库(如Indexed DB)中,然后按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志上报给服务器,如此,减少了请求的次数和使用带宽。此外,还可以将运维监控平台和服务器对接,便于快速捞取所需前端页面日志。这里,所述服务器可以为日志微服务,则所述日志接口为日志微服务的接口。
在本申请实施例中,为防止用户的信息泄露,本申请实施例中在将所述前端页面日志发送至服务器的过程中,采用高级加密标准(Advanced Encryption Standard,AES)算法对前端页面日志进行加密传输。该AES算法兼具加密速度快和资源消耗较少等特点。
在本申请实施例中针对日志上报的数据结构,设计了几个必备字段,这些字段的数据类型和说明,如表1所示:
表1
步骤103、创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
在本申请实施例中,所述异步更新请求为异步JavaScript和XML(AsynchronousJavascript And XML,Ajax)请求。这里,Ajax是指一种创建交互式网页应用的网页开发技术。其中,XML是可扩展标记语言(Extensible Markup Language,XML)。Ajax可以通过在浏览器后台与服务器进行少量的数据交换从而使网页实现异步更新。所谓“异步”,是发送请求后不需要等待服务器响应,将请求缓存至任务列表等待响应,继续下一请求的发送。这意味着Ajax可以在不重新加载整个网页的情况下,对网页的某部分进行更新。在对网页进行更新时,可能会有多个Ajax请求,传统Ajax请求调用方式采用静态嵌套方式,与业务代码融在一起实现Ajax请求调用。而本申请实施例中为了将前端页面日志和服务器日志进行关联,便于对整个业务日志进行聚合关联分析,本申请实施例通过重写Ajax请求中最底层的XMLHttpRequest对象的初始open函数和发送send函数(对应于本申请实施例中创建异步更新请求的步骤),以将请求标识写入HTTP请求消息的头部并发送至服务器,从而所述服务器可以通过所述请求标识关联所述前端页面日志和服务器日志。XMLHttpRequest为一种浏览器对象,可用于模拟HTTP的GET和POST请求,可以实现页面数据在无刷新下的定时数据更新,浏览器可以通过XMLHttpRequest取回所有类型的资源数据。
在本申请实施例中,创建Ajax请求具体过程为:创建XMLHttpRequest对象;调用所述XMLHttpRequest对象的open函数,对open函数进行重写,所述的open函数增强了将请求标识写入HTTP请求报文的头部的功能,所述open函数用于将所述请求标识写入HTTP请求消息的头部;调用所述XMLHttpRequest对象的send函数,对send函数进行重写,所述send函数增强了将接口日志的暂存到本地的能力,所述send函数用于将所述HTTP请求消息发送至服务器。这里,本申请实施例中的open函数和send函数均为基于Ajax请求进行重写后的函数,从而将请求标识X-Fe-RequestId写入HTTP请求消息中并发送至服务器,从而服务器根据HTTP请求消息中的请求标识X-Fe-RequestId即可将用户在前端页面上产生的前端页面日志和服务器日志进行关联。具体地,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识,所述请求标识为X-Fe-RequestId。所述请求标识和用户在此前端页面产生的log.messages请求标识相同,从而所述请求标识和此前端页面产生的前端页面日志中的页面标识相同。如此,通过请求标识(X-Fe-RequestId)就可以关联此前端页面的前端页面日志和此前端页面发起的Ajax请求。另外,在服务器侧,所述服务器接收到HTTP请求消息后,获取HTTP请求消息中的请求标识(X-Fe-RequestId),将请求标识(X-Fe-RequestId)和服务器的调用链标识进行关联,经过以上的关联,这样就将用户在前端页面上产生的前端页面日志和服务器日志进行了关联。之后还可以将这些前端页面上报过来的前端页面日志录入到Elasticsearch中,以对业务日志进行分析。这里,所述服务器的调用链标识为调用链的traceId(追踪ID)。在一些实施例中,将请求标识(X-Fe-RequestId)和服务器的调用链标识进行关联可以为将服务器的调用链标识(traceId)设置成和请求标识(X-Fe-RequestId)相同的标识。这里,所述服务器可以为日志微服务。
图2为本申请实施例提供的日志处理方法的整体架构图,如图2所示,本申请实施例中的前端平台(如浏览器客户端、应用APP客户端、应用小程序客户端等)通过所述日志收集策略(如事件触发策略、手动触发策略等)收集前端平台日志(如异常日志、接口日志、自定义日志等),并将所述前端平台日志存储到本地数据库,按照预设周期加密上报所述前端平台日志到服务器,并将运维监控平台和服务器对接,以便于将前端平台日志和服务器日志关联、聚合分析等。
本申请实施例中通过事件监听函数收集前端页面日志;将所述前端页面日志发送至服务器;创建Ajax请求,将所述Ajax请求发送至服务器,所述Ajax请求用于所述服务器关联所述前端页面日志和服务器日志。本申请实施例中通过事件监听函数将前端页面产生的前端页面日志收集起来,通过Ajax请求关联所述前端页面日志和服务器日志,如此,可以将用户在前端页面产生的日志和服务器产生的日志进行关联,开发人员可以得到完整的日志,从而便于开发人员进行问题定位和处理。
本申请实施例中将前端页面日志的日志收集策略封装到window对象上;并通过重写XMLHttpRequest的方式,巧妙地将前端页面日志和服务器日志进行了关联,本申请实施例中还将前端页面日志进行预存储并分时加密上报至服务器。
本申请实施例提供一种日志处理方法,图3为本申请实施例提供的一种日志处理方法的流程示意图,该方法主要包括以下步骤:
步骤301、接收前端页面发送的前端页面日志。
步骤302、接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
在本申请实施例中,所述异步更新请求为Ajax请求。所述服务器接收前端页面发送的HTTP请求消息,所述HTTP请求消息的头部携带所述请求标识。所述服务器获取所述HTTP请求消息中携带的所述请求标识,并基于所述请求标识和服务器的调用链标识,关联所述前端页面日志和服务器日志。这里,所述请求标识为X-Fe-RequestId。所述服务器的调用链标识为调用链的traceId。将所述X-Fe-RequestId和所述调用链的traceId关联后,在服务器侧通过所述调用链的traceId可以找到与Ajax请求相关的所有日志,而在前端页面侧通过所述X-Fe-RequestId可以找到与Ajax请求相关的所有日志。
在本申请实施例中,可以将关联在一起的所述前端页面日志和所述服务器日志聚合在一起,得到聚合日志,对所述聚合日志进行分析。具体实现方式为:将前端页面上报过来的前端页面日志和服务器日志录入到Elasticsearch中,以得到聚合日志,从而可以利用Elasticsearch对聚合日志进行分析。还可以通过Kibana搜索、分析和可视化存储在Elasticsearch中的聚合日志。从而用户可以通过X-Fe-RequestId或traceId在ELK(Elasticsearch、Logstash、Kibana)日志平台搜索与Ajax请求相关的所有日志。
本申请实施例中服务器接收前端页面发送的前端页面日志,接收所述前端页面发送的Ajax请求,基于所述Ajax请求关联所述前端页面日志和服务器日志。本申请实施例中将前端页面日志和Ajax请求发送至服务器,使得服务器基于Ajax请求关联所述前端页面日志和服务器日志,从而可以将用户在前端页面产生的日志和服务器产生的日志进行关联,开发人员可以得到完整的日志,便于开发人员的问题定位和处理。
图4为本申请一具体示例提供的日志处理方法的整体架构图,如图4所示,将上述日志处理方法中使用的函数和插件集成在FeLogSdk.js前端架构中,浏览器(前端页面)包括有使用上述日志处理方法所需的React.js和Vue.js通用的前端架构和FeLogSdk.js前端架构,通过Nginx转发前端平台发送的请求,并通过网关(Gateway)上传至日志微服务(服务器),日志微服务将前端平台日志和服务器日志录入到ELK日志平台,开发人员或运维人员通过ELK日志平台即可实现日志的聚合分析和查询。该浏览器可以以网页视图(WebView)形式呈现,也可以以客户端的形式呈现。本申请实施例中的前端页面包括FeLogSdk.js、react.js和Vue.js前端架构等,相比于传统的js库,可以实现收集前端平台日志,并将所述前端平台日志存储到本地数据库,按照预设周期加密上报所述前端平台日志到服务器,将运维监控平台和服务器对接,将前端平台日志和服务器日志关联、聚合分析等。
基于前述日志处理方法相同的技术构思,本申请实施例提供一种日志处理装置,在一些实施例中,日志处理装置可采用软件模块的方式实现,图5为本申请实施例提供的一种日志处理装置的组成结构示意图,参见图5,本申请实施例提供的日志处理装置500包括:
日志收集单元501,用于通过事件监听函数收集前端页面日志;
日志发送单元502,用于将所述前端页面日志发送至服务器;
请求单元503,用于创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
在其他实施例中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述请求单元503,具体用于创建XMLHttpRequest对象;
调用所述XMLHttpRequest对象的open函数,所述open函数用于将所述请求标识写入HTTP请求消息的头部;
调用所述XMLHttpRequest对象的send函数,所述send函数用于将所述HTTP请求消息发送至服务器。
在其他实施例中,所述装置还包括:
调用单元504,用于调用日志记录器,获得日志收集策略;
所述日志收集单元501,具体用于基于所述日志收集策略,通过事件监听函数收集前端页面日志。
在其他实施例中,所述装置还包括:
配置单元505,用于在前端页面配置日志记录器,并将所述日志记录器挂载到window对象上。
在其他实施例中,所述日志发送单元502,具体用于将所述前端页面日志存储到本地数据库;
按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志发送至所述服务器。
在其他实施例中,所述事件监听函数包括error事件监听函数和unhandledRejection事件监听函数。
基于前述日志处理方法相同的技术构思,本申请实施例提供一种日志处理装置,在一些实施例中,日志处理装置可采用软件模块的方式实现,图6为本申请实施例提供的一种日志处理装置的组成结构示意图,参见图6,本申请实施例提供的日志处理装置600包括:
接收单元601,用于接收前端页面发送的前端页面日志;
关联单元602,用于接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
在其他实施例中,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述关联单元602,具体用于接收所述前端页面发送的HTTP请求消息,所述HTTP请求消息的头部携带所述请求标识;
基于所述请求标识和服务器的调用链标识,关联所述前端页面日志和服务器日志。
在其他实施例中,所述装置还包括:
聚合分析单元603,用于将关联在一起的所述前端页面日志和所述服务器日志聚合在一起,得到聚合日志,对所述聚合日志进行分析。
在本申请实施例中的各组成部分可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
所述集成的单元如果以软件功能模块的形式实现并非作为独立的产品进行销售或使用时,可以存储在一个计算机可读取存储介质中,基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或processor(处理器)执行本申请实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
因此,本申请实施例提供了一种存储介质,该存储介质存储有计算机程序,所述计算机程序被至少一个处理器执行时实现上述实施例所述的步骤。
参见图7,示出了本申请实施例提供的一种电子设备700的具体硬件结构,包括:网络接口701、存储器702和处理器703;各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。
其中,所述网络接口701,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器702,用于存储能够在处理器703上运行的计算机程序;
处理器703,用于在运行所述计算机程序时,执行前述日志处理方法。
参见图8,示出了本申请实施例提供的一种服务器800的具体硬件结构,包括:网络接口801、存储器802和处理器803;各个组件通过总线系统804耦合在一起。可理解,总线系统804用于实现这些组件之间的连接通信。总线系统804除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统804。
其中,所述网络接口801,用于在与其他外部网元之间进行收发信息过程中,信号的接收和发送;
存储器802,用于存储能够在处理器803上运行的计算机程序;
处理器803,用于在运行所述计算机程序时,执行前述日志处理方法。
可以理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double Data RateSDRAM,DDRSDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Sync Link DRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambus RAM,DRRAM)。本文描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
而处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解的是,本文描述的这些实施例可以用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可以实现在一个或多个专用集成电路(ApplicationSpecific Integrated Circuits,ASIC)、数字信号处理器(Digital Signal Processing,DSP)、数字信号处理设备(DSP Device,DSPD)、可编程逻辑设备(Programmable LogicDevice,PLD)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。
对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器中并通过处理器执行。存储器可以在处理器中或在处理器外部实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
在本申请所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (15)
1.一种日志处理方法,其特征在于,所述方法包括:
通过事件监听函数收集前端页面日志;
将所述前端页面日志发送至服务器;
创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
2.根据权利要求1所述的日志处理方法,其特征在于,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述创建异步更新请求,将所述异步更新请求发送至服务器,包括:
创建XMLHttpRequest对象;
调用所述XMLHttpRequest对象的初始open函数,所述open函数用于将所述请求标识写入HTTP请求消息的头部;
调用所述XMLHttpRequest对象的发送send函数,所述send函数用于将所述HTTP请求消息发送至服务器。
3.根据权利要求2所述的日志处理方法,其特征在于,
所述请求标识和前端页面产生的所述前端页面日志中的页面标识相同。
4.根据权利要求1所述的日志处理方法,其特征在于,所述通过事件监听函数收集前端页面日志之前,所述方法还包括:
调用日志记录器,获得日志收集策略;
所述通过事件监听函数收集前端页面日志,包括:
基于所述日志收集策略,通过事件监听函数收集前端页面日志。
5.根据权利要求4所述的日志处理方法,其特征在于,所述调用日志记录器,获得日志收集策略之前,所述方法还包括:
在前端页面配置日志记录器,并将所述日志记录器挂载到window对象上。
6.根据权利要求1所述的日志处理方法,其特征在于,所述将所述前端页面日志发送至服务器,包括:
将所述前端页面日志存储到本地数据库;
按照预设周期调用日志接口,通过所述日志接口将所述前端页面日志发送至所述服务器。
7.根据权利要求1至6中任一项所述的日志处理方法,其特征在于,
所述事件监听函数包括错误error事件监听函数和未处理的拒绝unhandledRejection事件监听函数。
8.一种日志处理方法,其特征在于,所述方法包括:
接收前端页面发送的前端页面日志;
接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
9.根据权利要求8所述的日志处理方法,其特征在于,所述前端页面日志包括第一字段,所述第一字段用于指示请求标识;
所述接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志,包括:
接收所述前端页面发送的HTTP请求消息,所述HTTP请求消息的头部携带所述请求标识;
基于所述请求标识和服务器的调用链标识,关联所述前端页面日志和服务器日志。
10.根据权利要求9所述的日志处理方法,其特征在于,所述方法还包括:
将关联在一起的所述前端页面日志和所述服务器日志聚合在一起,得到聚合日志,对所述聚合日志进行分析。
11.一种日志处理装置,其特征在于,所述装置包括:
日志收集单元,用于通过事件监听函数收集前端页面日志;
日志发送单元,用于将所述前端页面日志发送至服务器;
请求单元,用于创建异步更新请求,将所述异步更新请求发送至服务器,所述异步更新请求用于所述服务器关联所述前端页面日志和服务器日志。
12.一种日志处理装置,其特征在于,所述装置包括:
接收单元,用于接收前端页面发送的前端页面日志;
关联单元,用于接收所述前端页面发送的异步更新请求,基于所述异步更新请求关联所述前端页面日志和服务器日志。
13.一种电子设备,其特征在于,所述电子设备包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7中任一项所述的日志处理方法。
14.一种服务器,其特征在于,所述服务器包括:
网络接口,用于实现组件之间的连接通信;
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求8至10中任一项所述的日志处理方法。
15.一种存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被至少一个处理器执行时,实现权利要求1至7中任一项所述的日志处理方法、或权利要求8至10中任一项所述的日志处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503247.7A CN114650236A (zh) | 2020-12-17 | 2020-12-17 | 一种日志处理方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011503247.7A CN114650236A (zh) | 2020-12-17 | 2020-12-17 | 一种日志处理方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114650236A true CN114650236A (zh) | 2022-06-21 |
Family
ID=81989936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011503247.7A Pending CN114650236A (zh) | 2020-12-17 | 2020-12-17 | 一种日志处理方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114650236A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225879A (zh) * | 2023-05-06 | 2023-06-06 | 天津金城银行股份有限公司 | 一种节点脱落分析方法、装置和计算机终端 |
CN117472784A (zh) * | 2023-12-25 | 2024-01-30 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182506A (zh) * | 2014-08-19 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 日志管理方法 |
CN104657479A (zh) * | 2015-02-17 | 2015-05-27 | 广东新农人农业科技股份有限公司 | 网页页面显示更新数据的方法及系统 |
CN105808605A (zh) * | 2014-12-31 | 2016-07-27 | 北京奇虎科技有限公司 | 一种搜索日志合并方法和系统 |
CN107016106A (zh) * | 2017-04-12 | 2017-08-04 | 深圳市茁壮网络股份有限公司 | 一种信息采集系统及Web应用 |
CN107426233A (zh) * | 2017-08-08 | 2017-12-01 | 深圳先进技术研究院 | 基于B/S架构的数据通信系统、方法、Web服务器及监控系统 |
WO2018199796A1 (en) * | 2017-04-27 | 2018-11-01 | EMC IP Holding Company LLC | Consolidating temporally-related data within log-based storage |
WO2019019648A1 (zh) * | 2017-07-26 | 2019-01-31 | 深圳壹账通智能科技有限公司 | 用户行为统计方法、系统、计算机设备和存储介质 |
CN110134538A (zh) * | 2019-05-10 | 2019-08-16 | 重庆天蓬网络有限公司 | 快速定位问题日志的方法、装置、介质和电子设备 |
CN111176987A (zh) * | 2019-12-18 | 2020-05-19 | 深圳前海环融联易信息科技服务有限公司 | 前端日志统一输出的方法、装置、计算机设备及存储介质 |
CN111367760A (zh) * | 2020-02-28 | 2020-07-03 | 平安医疗健康管理股份有限公司 | 日志采集方法及装置、计算机设备、存储介质 |
-
2020
- 2020-12-17 CN CN202011503247.7A patent/CN114650236A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182506A (zh) * | 2014-08-19 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 日志管理方法 |
CN105808605A (zh) * | 2014-12-31 | 2016-07-27 | 北京奇虎科技有限公司 | 一种搜索日志合并方法和系统 |
CN104657479A (zh) * | 2015-02-17 | 2015-05-27 | 广东新农人农业科技股份有限公司 | 网页页面显示更新数据的方法及系统 |
CN107016106A (zh) * | 2017-04-12 | 2017-08-04 | 深圳市茁壮网络股份有限公司 | 一种信息采集系统及Web应用 |
WO2018199796A1 (en) * | 2017-04-27 | 2018-11-01 | EMC IP Holding Company LLC | Consolidating temporally-related data within log-based storage |
WO2019019648A1 (zh) * | 2017-07-26 | 2019-01-31 | 深圳壹账通智能科技有限公司 | 用户行为统计方法、系统、计算机设备和存储介质 |
CN107426233A (zh) * | 2017-08-08 | 2017-12-01 | 深圳先进技术研究院 | 基于B/S架构的数据通信系统、方法、Web服务器及监控系统 |
CN110134538A (zh) * | 2019-05-10 | 2019-08-16 | 重庆天蓬网络有限公司 | 快速定位问题日志的方法、装置、介质和电子设备 |
CN111176987A (zh) * | 2019-12-18 | 2020-05-19 | 深圳前海环融联易信息科技服务有限公司 | 前端日志统一输出的方法、装置、计算机设备及存储介质 |
CN111367760A (zh) * | 2020-02-28 | 2020-07-03 | 平安医疗健康管理股份有限公司 | 日志采集方法及装置、计算机设备、存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116225879A (zh) * | 2023-05-06 | 2023-06-06 | 天津金城银行股份有限公司 | 一种节点脱落分析方法、装置和计算机终端 |
CN117472784A (zh) * | 2023-12-25 | 2024-01-30 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
CN117472784B (zh) * | 2023-12-25 | 2024-03-19 | 图灵人工智能研究院(南京)有限公司 | 基于浏览器的Serverless代码在线调试方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11658985B2 (en) | Utilizing blockchains to implement named data networking | |
US9203642B2 (en) | Method and system for collecting data on a wireless device | |
US10275617B2 (en) | Object tracking using enhanced video surveillance through a distributed network | |
JP6351737B2 (ja) | フォーム添付ファイルのアップロード | |
CN103606094A (zh) | 一种移动互联网广告监测方法和系统 | |
CN114650236A (zh) | 一种日志处理方法、装置及存储介质 | |
US20210400114A1 (en) | Methods and apparatus for census and panel matching using http headers | |
CN113687974B (zh) | 客户端日志处理方法、装置及计算机设备 | |
CN112788270B (zh) | 视频回溯方法、装置、计算机设备及存储介质 | |
US20140317081A1 (en) | System and method for session data management | |
CN108040045B (zh) | 访问流量文件的生成方法、装置、服务器及存储介质 | |
CN110134653B (zh) | 一种利用日志辅助数据库审计方法及系统 | |
CN114398243A (zh) | 一种关于用户操作轨迹的回溯方法及系统 | |
CN110990365A (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
WO2017107679A1 (zh) | 一种历史信息展示方法及装置 | |
CN112527414B (zh) | 一种基于前端的数据处理方法、装置、设备及存储介质 | |
JP6213676B2 (ja) | 解析装置、解析方法、および、解析プログラム | |
CN113987393A (zh) | 一种网页操作记录器、系统、装置及方法 | |
Dragonas et al. | IoT forensics: Analysis of a HIKVISION's mobile app | |
CN111147499A (zh) | 一种网络攻击行为采集与回放方法、装置,系统及电子设备 | |
CN111782993A (zh) | 页面显示方法、装置及服务器 | |
CN116126808A (zh) | 行为日志记录方法、装置、计算机设备和存储介质 | |
CN108229180B (zh) | 截图数据处理方法、装置和电子设备 | |
CN115904805A (zh) | 一种数据备份方法、装置、电子设备和存储介质 | |
CN112162954B (zh) | 用户操作日志生成、路径的定位方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |