CN116991816A - 日志输出方法、装置、电子设备和存储介质 - Google Patents
日志输出方法、装置、电子设备和存储介质 Download PDFInfo
- Publication number
- CN116991816A CN116991816A CN202311267227.8A CN202311267227A CN116991816A CN 116991816 A CN116991816 A CN 116991816A CN 202311267227 A CN202311267227 A CN 202311267227A CN 116991816 A CN116991816 A CN 116991816A
- Authority
- CN
- China
- Prior art keywords
- log
- code
- native application
- log output
- page
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 238000002347 injection Methods 0.000 claims description 14
- 239000007924 injection Substances 0.000 claims description 14
- 238000012546 transfer Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000011161 development Methods 0.000 abstract description 65
- 238000012545 processing Methods 0.000 abstract description 2
- 239000000243 solution Substances 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 3
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012559 user support system Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/1805—Append-only file systems, e.g. using logs or journals to store data
- G06F16/1815—Journaling file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/1734—Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供一种日志输出方法、装置、电子设备和存储介质,涉及数据处理技术领域。其中方法包括:将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;基于所述原生应用的日志输出接口,输出所述日志信息。本发明提供的方法、装置、电子设备和存储介质,无需在前端进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种日志输出方法、装置、电子设备和存储介质。
背景技术
随着软件技术的快速发展,在移动平台的开发中,混合开发的应用场景越来越广泛。其中,原生与H5的混合开发是十分重要的,即将原生开发和H5开发结合起来,以充分利用原生的应用程序的性能和功能,同时利用H5的跨平台性和低成本。而混合开发中日志输出是非常重要的,日志输出可以帮助开发人员在调试过程中找到问题,从而提高应用性能。因此,在开发过程中,应该确保日志信息的完整输出。
目前,通过原生开发人员与前端开发人员的配合联调,实现原生的网页容器与前端脚本的交互,进而实现前端的日志信息在原生端输出。然而,需要原生开发人员与前端开发人员同时联调,对两端开发有较强的依赖性,且占用双方大量的联调时间。因此,目前的日志输出方式效率低下,对前端开发的依赖性较强。
发明内容
本发明提供一种日志输出方法、装置、电子设备和存储介质,用以解决现有技术中日志输出方式效率低且依赖性高的缺陷。
本发明提供一种日志输出方法,包括:
将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;
获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;
基于所述原生应用的日志输出接口,输出所述日志信息。
根据本发明提供的一种日志输出方法,所述获取前端页面的日志信息,并将所述日志信息传递给所述原生应用,包括:
监听所述前端页面的日志输出接口,获取所述前端页面的日志信息;
调用所述原生应用的日志输出接口,以将所述日志信息传递给所述原生应用。
根据本发明提供的一种日志输出方法,所述将预定义的脚本代码注入至前端代码,包括:
创建用于加载所述前端页面的网页容器;
在所述原生应用加载网页容器时,将预定义的脚本代码注入至前端代码。
根据本发明提供的一种日志输出方法,所述获取前端页面的日志信息,之前还包括:
基于网页容器加载所述前端页面,以显示所述前端页面。
根据本发明提供的一种日志输出方法,所述输出所述日志信息,包括:
显示所述日志信息于所述原生应用的日志显示界面。
根据本发明提供的一种日志输出方法,所述目标代码包括调用所述原生应用的日志输出接口的调用代码。
根据本发明提供的一种日志输出方法,所述脚本代码为JavaScript代码,所述前端页面为H5页面。
本发明还提供一种日志输出装置,包括:
注入模块,用于将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;
传递模块,用于获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;
输出模块,用于基于所述原生应用的日志输出接口,输出所述日志信息。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述日志输出方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述日志输出方法。
本发明提供的日志输出方法、装置、电子设备和存储介质,将预定义的脚本代码注入至前端代码,且该脚本代码包括与原生应用交互的目标代码,该目标代码用于传输日志,基于此,就可以将前端的日志传递给原生应用,且只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率;同时,基于上述脚本代码提前注入前端代码的方式,可以将前端页面的日志信息传递给原生应用,以基于该原生应用的日志输出接口,输出前端页面的日志信息,从而只要获取到前端页面的日志信息就可以传递给原生应用进行日志输出,确保前端页面的日志信息不会出现丢失,且利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的日志输出方法的流程示意图;
图2为本发明提供的日志输出装置的结构示意图;
图3为本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着软件技术的快速发展,在移动平台的开发中,混合开发的应用场景越来越广泛。其中,原生与H5的混合开发是十分重要的,即将原生开发和H5开发结合起来,以充分利用原生的应用程序的性能和功能,同时利用H5的跨平台性和低成本。而混合开发中日志输出是非常重要的,日志输出可以帮助开发人员在调试过程中找到问题,从而提高应用性能。例如,通过输出日志,开发人员可以了解应用程序在运行时的状态,如变量的值、函数的执行顺序等等,这些信息可以帮助开发人员快速定位问题并进行修复;对于性能优化,日志输出可以帮助开发人员了解应用程序的性能瓶颈;通过输出日志,开发人员可以了解应用程序的运行时间、内存使用情况等等,这些信息可以帮助开发人员优化应用程序的性能,还可以帮助开发人员了解应用程序的安全性;通过输出日志,开发人员可以了解应用程序的安全漏洞、攻击尝试等等,这些信息可以帮助开发人员及时修复安全漏洞,提高应用程序的安全性。即日志输出在移动开发中是非常重要的基础能力,可以帮助开发人员快速定位问题、优化性能、提供用户支持和提高安全性。因此,在开发过程中,应该确保日志信息的完整输出,且开发人员应该养成良好的日志输出习惯。
目前,通过日志采集工具采集前端页面的日志信息。然而,日志采集工具无法在页面打开或关闭的时候采集日志信息,导致日志信息丢失。例如,vConsole是一个在移动开发中常用的调试工具,但它使用过程中也存在一些问题,如安全性问题、性能问题、兼容性问题和可靠性问题等等;最为重要的,vConsole无法在打开新的原生页面监听到页面的日志数据,或者关闭页面后不能够继续监听到页面的日志数据,如从一个Web原生容器A跳转到原生容器B,在原生容器B中做一些操作后直接调用原生返回,在这个操作与返回到原生容器A期间的B容器所携带的vConsole信息无法正常获取,因为在极短时间就被销毁,因此无法通过获取其期间的日志信息进行代码调试。即使通过原生开发人员与前端开发人员的配合联调,实现原生的网页容器与前端脚本的交互,进而实现前端的日志信息在原生端输出,如webView(网页容器)与JavaScript进行交互来进行日志输出。然而,需要原生开发人员与前端开发人员同时联调,对两端开发有较强的依赖性,且占用双方大量的联调时间。因此,目前的日志输出方式效率低下,对前端开发的依赖性较强。
针对上述问题,本发明提出以下各实施例。图1为本发明提供的日志输出方法的流程示意图,如图1所示,该日志输出方法包括:
步骤110,将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用。
其中,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志。
此处,脚本代码是预先定义的,其包括与原生应用交互的目标代码,该目标代码用于传输前端页面的日志信息至原生应用。该脚本代码同样为前端代码,在一实施例中,该脚本代码为JavaScript代码。此外,该脚本代码的注入方式可以根据实际需要设定,例如通过属性设置方式设置代码注入方式。
进一步地,所述目标代码包括调用所述原生应用的日志输出接口的调用代码,以供调用原生应用的日志输出接口,从而实现前端页面的日志信息传递给原生应用。即在方法中调用原生接口(即原生应用的日志输出接口),以供脚本代码注入前端代码后,前端页面与原生应用进行交互。
进一步地,脚本代码还包括前端页面的日志输出对象与预设方法之间的赋值代码。即将前端页面的日志输出对象赋值给预设方法,以实现一个日志输出对象,用于接收代码中的日志输出对象的相关方法的调用,以响应前端页面的日志输出请求,或其他相关请求。
示例性的,该脚本代码如下所示:
console.log = (function(oriLogFunc){
return function(str)
{
window.webkit.messageHandlers.log.postMessage(str);
oriLogFunc.call(console,str);
}
})(console.log);
其中,console为前端页面的日志输出对象,console.log为日志输出对象的字段,oriLogFunc为预设方法,str为前端页面的日志信息,即str为前端页面中console.log的日志输出信息,window.webkit.messageHandlers.log.postMessage()为调用原生应用的日志输出接口的调用代码,即通过window.webkit.messageHandlers.log.postMessa方法与原生交互,以将日志信息传递给原生,oriLogFunc.call(console,str)为前端页面的日志输出对象与预设方法之间的赋值代码。需要说明的是,在脚本代码中,实现一个JavaScript的console对象,用于接收JavaScript代码中的console.log方法的调用。
具体地,在原生开发中,实现相关协议的配置与代码定义,以实现将预定义的脚本代码注入至前端代码。
在一实施例中,在原生应用加载网页容器时,将预定义的脚本代码注入至前端代码。即通过原生运行时机制,在原生应用加载网页容器时,把事先定义好的脚本代码注入到前端代码中。例如,网页容器为WebView,则通过原生运行时机制,在WebView加载URL展示到前端页面之前,把事先定义好的脚本代码注入到前端代码中。换言之,在原生加载网页容器时,将要注入的脚本代码通过原生代码调用脚本代码的方式将脚本代码插入到前端代码中。
步骤120,获取前端页面的日志信息,并将所述日志信息传递给所述原生应用。
此处,前端页面的日志信息是需要传递给原生应用的信息,且其是需要通过原生应用的日志输出接口输出该日志信息的。进一步地,该日志信息是监听得到的,具体地,由消息拦截器拦截得到,并消费消息。在一实施例中,前端页面为H5页面,从而实现原生与H5的混合开发。
可以理解的是,脚本代码包括与原生应用交互的目标代码,且该目标代码用于传输日志,且该脚本代码注入至前端代码,基于此,在获取前端页面的日志信息后,可以基于该目标代码,将日志信息传递给原生应用。换言之,在前端页面调用其日志输出接口的同时,前端页面输出的日志信息会通过与原生交互的方式传给原生。
在一实施例中,目标代码包括调用原生应用的日志输出接口的调用代码,从而在获取前端页面的日志信息后,可以基于该调用代码,调用原生应用的日志输出接口,以将前端页面的日志信息传递给该原生应用。
步骤130,基于所述原生应用的日志输出接口,输出所述日志信息。
需要说明的是,原生应用本身设有一个日志输出接口,用于输出原生应用本身的日志信息,此时,该原生应用的日志输出接口还用于输出前端页面的日志信息,从而利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。
在一实施例中,目标代码包括调用原生应用的日志输出接口的调用代码,从而在获取前端页面的日志信息后,可以基于该调用代码,调用原生应用的日志输出接口,进而基于该原生应用的日志输出接口,输出前端页面的日志信息。
在一实施例中,输出前端页面的日志信息至原生应用对应的日志显示界面(如控制台或窗口)。其中,该日志显示界面用于显示原生应用本身的日志信息,此时,该日志显示界面还用于显示前端页面的日志信息,从而利用原生的日志显示界面即可完成日志输出,提高日志输出的便捷性。
可以理解的是,将预定义的脚本代码注入至前端代码,且该脚本代码包括与原生应用交互的目标代码,该目标代码用于传输日志,基于此,就可以将前端的日志传递给原生应用,且只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,从而实现无痕安装,不影响业务端,即业务与功能完全解耦,降低硬编码导致的程序报错问题,且开发简单独立,无需前端交互或协助,且使用方便,可支持插件化,无需前端知识就能获取前端相关的信息输出,并通过输出内容排查锁定问题及其位置;同时,基于上述脚本代码提前注入前端代码的方式,可以将前端页面的日志信息传递给原生应用,以基于该原生应用的日志输出接口,输出前端页面的日志信息,从而无需设置移动代理,独立调试只需要关注原生开发端的集成开发工具和应用部署的移动平台设备即可,无需安装代理工具以及安装https的相关证书等,从而提高便捷性。基于上述,最终,确保输出的日志信息准确、详细、有用,并且不会影响应用程序的性能。
本发明实施例提供的日志输出方法,将预定义的脚本代码注入至前端代码,且该脚本代码包括与原生应用交互的目标代码,该目标代码用于传输日志,基于此,就可以将前端的日志传递给原生应用,且只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率;同时,基于上述脚本代码提前注入前端代码的方式,可以将前端页面的日志信息传递给原生应用,以基于该原生应用的日志输出接口,输出前端页面的日志信息,从而只要获取到前端页面的日志信息就可以传递给原生应用进行日志输出,确保前端页面的日志信息不会出现丢失,且利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。
基于上述任一实施例,该方法中,上述步骤120包括:
监听所述前端页面的日志输出接口,获取所述前端页面的日志信息;
调用所述原生应用的日志输出接口,以将所述日志信息传递给所述原生应用。
具体地,监听前端页面原有的日志输出接口,以获取前端页面的日志信息。该前端页面的日志输出接口为前端本身的一个日志输出接口,从而监听该前端页面的日志输出接口即可获取前端页面的日志信息,从而无需在前端进行开发,减少对前端开发的依赖性,进而提高开发效率。更为具体地,通过原生代码实现监听前端页面的日志输出接口,从而只需在原生一端开发。
需要说明的是,原生应用的日志输出接口用于输出原生应用本身的日志信息,此时,该原生应用的日志输出接口还用于输出前端页面的日志信息,从而利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。
在一具体实施例中,将前端页面的日志信息作为入参信息,调用原生应用的日志输出接口,以将该日志信息传递给原生应用。
可以理解的是,在目标代码包括调用原生应用的日志输出接口的调用代码的情况下,可以基于该调用代码,调用原生应用的日志输出接口。换言之,通过原生代码实现监听前端页面的日志输出接口,且实现监听脚本调用原生交互的代理方法,即通过原生实现自行脚本调用原生,得以监听到前端的日志输出,不再借助前端开发实现,从而只需在原生一端开发。
本发明实施例提供的日志输出方法,监听前端页面的日志输出接口,以获取前端页面的日志信息,从而无需在前端进行开发,减少对前端开发的依赖性,进而提高开发效率;同时,调用原生应用的日志输出接口,以将日志信息传递给原生应用,就可以将前端的日志传递给原生应用,从而只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,进而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率。
基于上述任一实施例,该方法中,上述步骤110包括:
创建用于加载所述前端页面的网页容器;
在所述原生应用加载网页容器时,将预定义的脚本代码注入至前端代码。
具体地,创建用于加载前端页面的网页容器,以供后续基于网页容器加载前端页面,以显示该前端页面。
示例性的,网页容器为WebView。在一实施例中,创建一个WebView对象,并将该WebView对象添加到应用程序的视图层次结构中,以供后续可以基于网页容器加载前端页面。
在本发明实施例中,通过原生运行时机制,在原生应用加载网页容器时,把事先定义好的脚本代码注入到前端代码中。例如,网页容器为WebView,则通过原生运行时机制,在WebView加载URL展示到前端页面之前,把事先定义好的脚本代码注入到前端代码中。换言之,在原生加载网页容器时,将要注入的脚本代码通过原生代码调用脚本代码的方式将脚本代码插入到前端代码中。
本发明实施例提供的日志输出方法,创建用于加载前端页面的网页容器,以在原生应用加载网页容器时,将预定义的脚本代码注入至前端代码,从而通过原生运行时机制,可以成功将预定义的脚本代码注入至前端代码,进而只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率。
基于上述任一实施例,在上述步骤120之前,该方法还包括:
基于网页容器加载所述前端页面,以显示所述前端页面。
示例性的,网页容器为WebView,则基于前端页面的URL,加载该URL对应的前端页面。
可以理解的是,显示前端页面后,可以获取前端页面的操作信息,以基于该操作信息生成前端页面的日志信息。
进一步地,在基于网页容器加载前端页面之前,需要将预定义的脚本代码注入至前端代码。
本发明实施例提供的日志输出方法,基于网页容器加载前端页面,以显示前端页面,从而可以获取前端页面的操作信息,以基于该操作信息生成前端页面的日志信息,进而更好地获取前端页面的日志信息,且可以将对前端页面进行操作对应的日志信息输出。
基于上述任一实施例,上述步骤130中,输出所述日志信息,包括:
显示所述日志信息于所述原生应用的日志显示界面。
此处,日志显示界面用于显示原生应用本身的日志信息,此时,该日志显示界面还用于显示前端页面的日志信息,从而利用原生的日志显示界面即可完成日志输出,提高日志输出的便捷性。该日志显示界面可以为原生的控制台或展示窗口。
本发明实施例提供的日志输出方法,显示日志信息于原生应用的日志显示界面,从而利用原生的日志显示界面即可完成前端的日志输出,提高日志输出的便捷性。
基于上述任一实施例,所述目标代码包括调用所述原生应用的日志输出接口的调用代码,以供调用原生应用的日志输出接口,从而实现前端页面的日志信息传递给原生应用。即在方法中调用原生接口(即原生应用的日志输出接口),以供脚本代码注入前端代码后,前端页面与原生应用进行交互。
基于上述任一实施例,所述脚本代码为JavaScript代码,所述前端页面为H5页面。
本发明实施例提供的日志输出方法,将预定义的JavaScript代码注入至前端代码,且该JavaScript代码包括与原生应用交互的目标代码,该目标代码用于传输日志,基于此,就可以将前端的日志传递给原生应用,且只需在原生一端开发实现JavaScript代码的注入和相关实现,无需在前端H5进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率;同时,基于上述JavaScript代码提前注入前端代码的方式,可以将H5页面的日志信息传递给原生应用,以基于该原生应用的日志输出接口,输出H5页面的日志信息,从而只要获取到H5页面的日志信息就可以传递给原生应用进行日志输出,确保H5页面的日志信息不会出现丢失,且利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。同时,基于上述可以实现原生与H5的混合开发,且输出日志信息能够协助开发人员调试,并解决交互问题,即解决H5页面调用终端的基础能力,使得问题分析更加高效。
下面对本发明提供的日志输出装置进行描述,下文描述的日志输出装置与上文描述的日志输出方法可相互对应参照。
图2为本发明提供的日志输出装置的结构示意图,如图2所示,该日志输出装置,包括:
注入模块210,用于将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;
传递模块220,用于获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;
输出模块230,用于基于所述原生应用的日志输出接口,输出所述日志信息。
本发明实施例提供的日志输出装置,将预定义的脚本代码注入至前端代码,且该脚本代码包括与原生应用交互的目标代码,该目标代码用于传输日志,基于此,就可以将前端的日志传递给原生应用,且只需在原生一端开发实现脚本代码的注入和相关实现,无需在前端进行开发,只需在原生一端开发,从而无需原生开发人员与前端开发人员同时联调,减少对前端开发的依赖性,进而提高开发效率,即提高日志输出方式的实现效率;同时,基于上述脚本代码提前注入前端代码的方式,可以将前端页面的日志信息传递给原生应用,以基于该原生应用的日志输出接口,输出前端页面的日志信息,从而只要获取到前端页面的日志信息就可以传递给原生应用进行日志输出,确保前端页面的日志信息不会出现丢失,且利用原生的日志输出接口即可完成日志输出,提高日志输出的便捷性。
基于上述任一实施例,该传递模块220还用于:
监听所述前端页面的日志输出接口,获取所述前端页面的日志信息;
调用所述原生应用的日志输出接口,以将所述日志信息传递给所述原生应用。
基于上述任一实施例,该注入模块210还用于:
创建用于加载所述前端页面的网页容器;
在所述原生应用加载网页容器时,将预定义的脚本代码注入至前端代码。
基于上述任一实施例,该装置还包括:
页面加载模块,用于基于网页容器加载所述前端页面,以显示所述前端页面。
基于上述任一实施例,该输出模块230还用于:
显示所述日志信息于所述原生应用的日志显示界面。
基于上述任一实施例,所述目标代码包括调用所述原生应用的日志输出接口的调用代码。
基于上述任一实施例,所述脚本代码为JavaScript代码,所述前端页面为H5页面。
图3示例了一种电子设备的实体结构示意图,如图3所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行日志输出方法,该方法包括:将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;基于所述原生应用的日志输出接口,输出所述日志信息。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的日志输出方法,该方法包括:将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;基于所述原生应用的日志输出接口,输出所述日志信息。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种日志输出方法,其特征在于,包括:
将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;
获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;
基于所述原生应用的日志输出接口,输出所述日志信息。
2.根据权利要求1所述的日志输出方法,其特征在于,所述获取前端页面的日志信息,并将所述日志信息传递给所述原生应用,包括:
监听所述前端页面的日志输出接口,获取所述前端页面的日志信息;
调用所述原生应用的日志输出接口,以将所述日志信息传递给所述原生应用。
3.根据权利要求1所述的日志输出方法,其特征在于,所述将预定义的脚本代码注入至前端代码,包括:
创建用于加载所述前端页面的网页容器;
在所述原生应用加载网页容器时,将预定义的脚本代码注入至前端代码。
4.根据权利要求1所述的日志输出方法,其特征在于,所述获取前端页面的日志信息,之前还包括:
基于网页容器加载所述前端页面,以显示所述前端页面。
5.根据权利要求1所述的日志输出方法,其特征在于,所述输出所述日志信息,包括:
显示所述日志信息于所述原生应用的日志显示界面。
6.根据权利要求1至5中任一项所述的日志输出方法,其特征在于,所述目标代码包括调用所述原生应用的日志输出接口的调用代码。
7.根据权利要求1至5中任一项所述的日志输出方法,其特征在于,所述脚本代码为JavaScript代码,所述前端页面为H5页面。
8.一种日志输出装置,其特征在于,包括:
注入模块,用于将预定义的脚本代码注入至前端代码,以将前端的日志传递给原生应用,所述脚本代码包括与所述原生应用交互的目标代码,所述目标代码用于传输日志;
传递模块,用于获取前端页面的日志信息,并将所述日志信息传递给所述原生应用;
输出模块,用于基于所述原生应用的日志输出接口,输出所述日志信息。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述日志输出方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述日志输出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267227.8A CN116991816B (zh) | 2023-09-28 | 2023-09-28 | 日志输出方法、装置、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311267227.8A CN116991816B (zh) | 2023-09-28 | 2023-09-28 | 日志输出方法、装置、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116991816A true CN116991816A (zh) | 2023-11-03 |
CN116991816B CN116991816B (zh) | 2024-01-23 |
Family
ID=88528809
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311267227.8A Active CN116991816B (zh) | 2023-09-28 | 2023-09-28 | 日志输出方法、装置、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116991816B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778052A (zh) * | 2012-10-17 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 一种前端javascript代码的测试方法和装置 |
CN106897162A (zh) * | 2017-02-23 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种应用中组件的通信方式选择方法、通信系统和移动终端 |
CN108471366A (zh) * | 2018-02-02 | 2018-08-31 | 深圳市康拓普信息技术有限公司 | 一种面向云原生应用的立体监控系统 |
CN112632547A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种数据处理方法和相关装置 |
WO2021141893A1 (en) * | 2020-01-06 | 2021-07-15 | Piggy Llc | Systems, methods, and computer programs for providing users maximum benefit in electronic commerce |
CN113626321A (zh) * | 2021-07-29 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 桥接测试方法、装置、系统及存储介质 |
CN115248735A (zh) * | 2022-07-15 | 2022-10-28 | 杭州涂鸦信息技术有限公司 | 一种日志数据输出控制方法、装置、设备及存储介质 |
WO2023015853A1 (zh) * | 2021-08-11 | 2023-02-16 | 中国银联股份有限公司 | 一种应用日志打码方法、装置及计算机可读存储介质 |
CN116136757A (zh) * | 2021-11-18 | 2023-05-19 | 北京金山云网络技术有限公司 | 日志输出方法、装置及电子设备 |
-
2023
- 2023-09-28 CN CN202311267227.8A patent/CN116991816B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103778052A (zh) * | 2012-10-17 | 2014-05-07 | 百度在线网络技术(北京)有限公司 | 一种前端javascript代码的测试方法和装置 |
CN106897162A (zh) * | 2017-02-23 | 2017-06-27 | 腾讯科技(深圳)有限公司 | 一种应用中组件的通信方式选择方法、通信系统和移动终端 |
CN108471366A (zh) * | 2018-02-02 | 2018-08-31 | 深圳市康拓普信息技术有限公司 | 一种面向云原生应用的立体监控系统 |
WO2021141893A1 (en) * | 2020-01-06 | 2021-07-15 | Piggy Llc | Systems, methods, and computer programs for providing users maximum benefit in electronic commerce |
CN112632547A (zh) * | 2020-12-31 | 2021-04-09 | 中国农业银行股份有限公司 | 一种数据处理方法和相关装置 |
CN113626321A (zh) * | 2021-07-29 | 2021-11-09 | 北京达佳互联信息技术有限公司 | 桥接测试方法、装置、系统及存储介质 |
WO2023015853A1 (zh) * | 2021-08-11 | 2023-02-16 | 中国银联股份有限公司 | 一种应用日志打码方法、装置及计算机可读存储介质 |
CN116136757A (zh) * | 2021-11-18 | 2023-05-19 | 北京金山云网络技术有限公司 | 日志输出方法、装置及电子设备 |
CN115248735A (zh) * | 2022-07-15 | 2022-10-28 | 杭州涂鸦信息技术有限公司 | 一种日志数据输出控制方法、装置、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
杨武博: "IOS跨域问题分析和处理", Retrieved from the Internet <URL:https://blog.csdn.net/yangwubolwg/article/details/125215476> * |
邓璐娟;陈欣欣;雷科伟;贾志勇;范纪冉;: "基于Ionic的自适应前端技术研究与应用", 计算机系统应用, no. 11 * |
Also Published As
Publication number | Publication date |
---|---|
CN116991816B (zh) | 2024-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107133180B (zh) | 动态页面的测试方法、测试装置及存储介质 | |
CN107203419B (zh) | 应用程序中的模块间调用方法、装置及系统 | |
EP1582984A2 (en) | Remote software support system | |
CN101877696B (zh) | 在网络应用环境下重构错误响应信息的设备和方法 | |
CN107241315B (zh) | 银行网关接口的接入方法、装置及计算机可读存储介质 | |
CN112329945A (zh) | 一种模型部署及推理的方法和装置 | |
CN104821954A (zh) | 一种跨平台远程过程调用方法 | |
CN112130871A (zh) | 远程部署中间件的方法、装置、计算机设备及存储介质 | |
CN110598135A (zh) | 网络请求处理方法、装置、计算机可读介质及电子设备 | |
CN110609755A (zh) | 跨区块链节点的消息处理方法及装置、设备、介质 | |
CN113641582A (zh) | 混合模式移动应用调试方法及系统 | |
CN112699034B (zh) | 虚拟登录用户构建方法、装置、设备及存储介质 | |
CN116991816B (zh) | 日志输出方法、装置、电子设备和存储介质 | |
CN117041234A (zh) | web端与原生端的交互方法及终端设备 | |
CN114253441B (zh) | 目标功能的启用方法及装置、存储介质、电子装置 | |
CN113872919B (zh) | 一种漏洞扫描方法及装置 | |
CN116521251A (zh) | 服务管理方法、装置、计算机设备及存储介质 | |
CN113626330A (zh) | 混合模式移动应用调试方法及系统 | |
CN113641580A (zh) | 混合模式移动应用调试方法及系统 | |
CN108288135B (zh) | 系统兼容方法及装置、计算机可读存储介质及电子设备 | |
CN111800461A (zh) | 浏览器的脚本下载方法、装置、设备及存储介质 | |
CN113364614B (zh) | 请求处理方法、装置、服务器、存储介质及程序产品 | |
CN112202728B (zh) | 一种移动端通过路由协议进行模块调用的方法和系统 | |
CN115617662A (zh) | 测试方法、系统、电子设备及存储介质 | |
CN116909551A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |