本申请涉及网络通信技术领域,尤其涉及一种提供终端应用日志的方法和装置、一种获取终端应用日志的方法和装置。
背景技术:
随着移动互联技术的发展和移动设备性能的提高,运行在移动设备上的应用得到了飞速发展。这些应用提供的功能几乎涵盖了生活工作的每一个方面,为用户带来极大的便利。
在开发和测试移动应用的过程中,对于定位软件中存在的问题,日志具有难以替代的作用。现有技术中,应用生成的日志数据存储在移动设备上,开发人员或测试人员需要通过USB(Universal Serial Bus,通用串行总线)数据线将移动设备连接到电脑上,再通过与该移动设备操作系统对应的开发工具来查看。例如,iOS系统的应用的日志数据需要在Mac上通过XCode(苹果公司的集成开发工具)来查看,而Android(安卓)系统的应用的日志数据则可以在Windows或Linux操作系统的PC(Personal Computer,个人电脑)上通过catlog(安卓的日志查看工具)来查看。
这样,一台PC可以同时查看的移动设备日志受限于本机USB口的数量;而且由于Xcode只有Mac版本,iOS设备无法在Windows或Linux系统上实时查看应用生成的日志;对开发和测试人员造成了很大的不便。
技术实现要素:
有鉴于此,本申请提供一种提供终端应用日志的方法,应用在服务器上, 包括:
接收终端上传的应用的日志标识信息和日志数据;
接收展示主机的日志数据请求,所述日志数据请求中包括日志标识信息;
向展示主机返回具有所述日志数据请求中日志标识信息的应用的日志数据。
本申请提供的一种提供终端应用日志的方法,应用在终端上,包括:
生成应用的日志数据;
向服务器上传所述应用的日志标识信息和日志数据。
本申请提供的一种获取终端应用日志的方法,应用在展示主机上,包括:
获取应用的日志标识信息;
向服务器发送日志数据请求,所述日志数据请求中包括应用的日志标识信息;
接收服务器返回的具有日志数据请求中日志标识信息的应用的日志数据,并展现接收的日志数据。
本申请还提供了一种提供终端应用日志的装置,应用在服务器上,包括:
日志标识及数据接收单元,用于接收终端上传的应用的日志标识信息和日志数据;
日志数据请求接收单元,用于接收展示主机的日志数据请求,所述日志数据请求中包括日志标识信息;
日志数据下发单元,用于向展示主机返回具有所述日志数据请求中日志标识信息的应用的日志数据。
本申请提供的一种提供终端应用日志的装置,应用在终端上,包括:
日志数据生成单元,用于生成应用的日志数据;
日志标识及数据上传单元,用于向服务器上传所述应用的日志标识信息和日志数据。
本申请提供的一种获取终端应用日志的装置,应用在展示主机上,包括:
日志标识信息单元,用于获取应用的日志标识信息;
日志数据请求发送单元,用于向服务器发送日志数据请求,所述日志数据请求中包括应用的日志标识信息;
数据接收及展现单元,用于接收服务器返回的具有日志数据请求中日志标识信息的应用的日志数据,并展现接收的日志数据。
由以上技术方案可见,本申请的实施例中,由终端将应用的日志标识信息和日志数据上传到服务器,服务器根据展示主机在日志数据请求中指定的日志标识信息,将对应的日志数据发送给展示主机,由展示主机显示给用户。这样,展示主机可以同时查看日志的终端个数不再受限于展示主机本地的接口数量,并且能够查看不同终端操作系统的日志数据,避免了终端操作系统的平台限制。
附图说明
图1是本申请实施例应用场景的一种网络结构图;
图2是本申请实施例中一种应用在服务器上,提供终端应用日志的方法的流程图;
图3是本申请实施例中一种应用在终端上,提供终端应用日志的方法的流程图;
图4是本申请实施例中一种应用在展示主机上,获取终端应用日志的方法的流程图;
图5是本申请应用示例中一种终端、展示主机与服务器之间的交互流程图;
图6是终端、展示主机或服务器的一种硬件结构图;
图7是本申请实施例中一种应用在服务器上,提供终端应用日志的装置的逻辑结构图;
图8是本申请实施例中一种应用在终端上,提供终端应用日志的装置的逻辑结构图;
图9是本申请实施例中一种应用在展示主机上,获取终端应用日志的装 置的逻辑结构图。
具体实施方式
本申请的实施例提出一种新的提供终端应用日志的方法和一种新的获取终端应用日志的方法,由终端将应用的日志数据上传到服务器,由服务器下发给展示主机进行显示,在终端、服务器和展示主机之间通过日志标识信息来区分不同终端的日志数据,使得展示主机可以同时获取日志的终端数量与其硬件接口的个数无关,并且展示主机可以获取任一终端操作系统的应用日志,以解决现有技术中存在的问题。
一种本申请实施例应用场景的网络结构如图1所示,终端和服务器之间、展示主机和服务器之间通过通信网络(如互联网和/或移动通信网络)相互可访问;在一些应用场景中,终端与展示主机之间也可以通过无线局域网、通信网络等进行通信。本申请实施例中,终端可以是手机、平板电脑、个人电脑、笔记本等设备;展示主机可以是手机、平板电脑、个人电脑、笔记本、物理或逻辑的服务器等;服务器可以是一个物理或逻辑服务器,也可以是由两个或两个以上分担不同职责的物理或逻辑服务器、相互协同来实现本申请实施例中服务器的各项功能。本实施例中对终端、展示主机的种类、通信网络的协议和组网结构、服务器的具体实现方式等均不做限定。
本申请实施例中,提供终端应用日志的方法运行在服务器上的流程如图2所示,运行在终端上的流程如图3所示,获取终端应用日志的方法运行在展示主机上的流程如图4所示。
在展示主机上,步骤410,获取应用的日志标识信息。
日志标识信息用来代表日志数据所属的终端和应用,终端利用日志标识信息告知展示主机上传的日志数据属于哪个终端和应用,展示主机利用日志标识信息来告知服务器要请求哪个终端和应用的日志数据。
能够使服务器区分出所接收的日志数据属于哪个终端和应用的标识都可以用来作为日志标识信息。根据具体应用场景的不同,日志标识信息可以是 终端标识,可以是终端标识和应用标识,还可以是服务器分配给展示主机和终端使用的标识。其中,终端标识可以是终端的硬件地址,如MAC(Media Access Control,介质访问控制)地址、UUID(Universally Unique Identifier,通用唯一识别码)等,在一些应用场景中也可以是终端的网络地址,如IP(Internet Protocol,互联网协议)地址等。应用标识用来区分终端上的多个应用,可以是应用的名称等。
举例而言,如果服务器用来接收某个应用在多个终端上的日志数据,则可以将终端标识作为日志标识信息。再如,如果服务器用来接收多个应用在多个终端上的日志数据,则可以将终端标识和应用标识作为日志标识信息。在这两种实现方式中,展示主机可以由管理员手动配置要显示的日志数据所属终端的标识、或所属终端的标识和所属应用的标识;也可以通过无线局域网或通信网络,从终端或网管服务器等设备上得到终端标识、或终端标识和应用标识。
在一种实现方式中,可以由展示主机向服务器发送日志标识请求;服务器根据展示主机的日志标识请求,生成应用的日志标识信息,该日志标识信息在服务器侧能够唯一代表某个终端和应用;服务器将生成的日志标识信息下发给展示主机;展示主机接收服务器返回的应用的日志标识信息,将该日志标识信息提供给生成该应用的日志数据的终端。这样,展示主机与服务器之间、终端与服务器之间都可以用该日志标识信息来指示出日志数据属于哪个终端和应用。
上述实现方式中,服务器可以采用各种产生唯一标识的方式来生成日志标识信息,本申请实施例中不做限定。展示主机也可以采用各种方式将服务器生成的日志标识信息告知终端,如通过通信网络、通过无线局域网;再如,展示主机根据服务器返回的应用的日志标识信息生成二维码,并显示该二维码供生成该应用的日志数据终端扫描,终端扫描展示主机显示的二维码,得到该二维码携带的日志标识信息。
在终端上,步骤310,生成应用的日志数据。
终端可以采用现有技术中提供的各种方式在应用的运行过程中记录其日志数据,本申请实施例不做限定。
在终端上,步骤320,向服务器上传该应用的日志标识信息和日志数据。
在服务器上,步骤210,接收终端上传的应用的日志标识信息和日志数据。
终端通过与服务器之间的通信网络将应用的日志标识信息和日志数据上传给服务器,所采用的具体协议不做限定。
在一种实现方式中,可以在终端与服务器建立Socket(套接字)连接后,终端先通过该Socket连接上传的应用的日志标识信息,告知服务器该Socket连接用来传输对应于哪个日志标识信息的日志数据(即属于哪个日志标识信息对应的终端和应用的日志数据),然后终端通过该Socket连接向服务器上传本终端上该应用生成的日志数据。
服务器在收到终端上传的日志标识信息和日志数据后,保存日志数据以及该日志数据对应于哪个日志标识信息。
在展示主机上,步骤420,向服务器发送日志数据请求,日志数据请求中包括应用的日志标识信息。
在服务器上,步骤220,接收展示主机的日志数据请求。
在服务器上,步骤230,向展示主机返回具有日志数据请求中日志标识信息的应用的日志数据。
在展示主机上,步骤430,接收服务器返回的具有日志数据请求中日志标识信息的应用的日志数据,并展现接收的日志数据。
展示主机向服务器发送日志数据请求,并且在日志数据请求中以至少一个应用的日志标识信息来告知服务器所请求的是哪个或哪些日志数据。服务器按照日志数据请求中的日志标识信息查找到对应的日志数据(即具有该日志标识信息的应用的日志数据),将应用的日志数据在日志数据响应中返回给展示主机。展示主机收到所请求的日志数据后,将日志数据显示给用户。
展示主机与服务器之间的日志数据请求和响应可以采用各种协议,并且 以匹配于协议的交互方式来传递日志数据。例如,展示主机可以与服务器建立长连接,展示主机先基于该长连接向服务器发送日志数据请求,服务器通过日志数据请求得知该长连接用来传输具有哪个日志标识信息的应用的日志数据,则将该应用的日志数据基于该长连接发送给展示主机;当该应用的日志数据有更新时,服务器可以基于该长连接下发尚未传输给展示主机的新增日志数据。
在一个例子中,展示主机在浏览器中向用户显示终端应用的日志数据,由于浏览器与服务器之间通常采用Http(Hyper Text Transfer Protocol,超文本传输协议)类的短连接协议,当展示主机希望持续获得某个终端应用的日志数据时,可以由浏览器以一定周期发送携带应用的日志标识信息的Http请求(即日志数据请求);当服务器收到Http形式的日志数据请求后,查找对应于其中日志标识信息的日志数据,将尚未下发给展示主机的新增日志数据(通常是自上次与该展示主机的日志数据请求和响应后终端上传的日志数据),在Http响应中发送给展示主机的浏览器,由展示主机的浏览器显示给用户。这样,用户能够在展示主机上的浏览器中看到指定终端应用不断更新的日志数据。
可见,本申请的实施例中,终端向服务器上传应用的日志标识信息和日志数据,服务器将展示主机指定日志标识信息对应的日志数据下发给展示主机,通过采用日志标识信息来辨识日志数据所属的终端应用,用户能够在展示主机上查看多个终端应用的日志数据,不再受限于展示主机的硬件接口数量,并且展示主机可以获取任意操作系统的终端应用的日志数据,避免了平台限制。
在本申请的一个应用示例中,展示主机用浏览器的Web页面来向用户显示终端应用的日志数据。展示主机、终端和服务器之间的交互流程请参见图5。
展示主机的浏览器向服务器发送Web页面访问请求,以请求中符合预定条件的Web页面地址,表明该Web页面访问请求是日志标识请求。
服务器收到展示主机的Web页面访问请求并识别出该请求为日志标识请求,为该请求生成Token(令牌),所生成的Token在当前有效的所有Token中唯一对应于该Web页面。
服务器将生成的Token在对Web页面访问请求的响应中发送给展示主机。换言之,服务器将生成的Token作为应用的日志标识信息,在日志标识响应中回复给展示主机。
展示主机的浏览器从日志标识响应中解析出对应于Web页面的Token,生成携带该Token的二维码,显示在该Web页面上。
终端启动应用,扫描展示主机Web页面上的二维码,获得二维码中携带的Token。
终端应用与服务器之间建立Socket长连接,连接建立后,终端应用先将Token上传给服务器,之后将该应用生成的日志数据上传给服务器。当应用在运行中生成新的日志数据后,该应用仍通过已建立的Socket连接将新的日志数据上传给服务器。
服务器从Socket连接中收到终端应用上传的Token和应用的日志数据,按照Token保存基于该Socket连接接收的日志数据,以便于其他终端和/或应用的日志数据区分开来。
展示主机上,浏览器的该Web页面采用Http协议,以该Token作为参数,以一定周期循环向服务器发送Http请求(即携带日志标识信息的日志数据请求)。
服务器收到展示主机Web页面的Http请求,根据其中的Token,将对应于该Token的、尚未下发给该Web页面的日志数据,封装在Http响应中发送给展示主机的该Web页面。
展示主机将接收的日志数据在该Web页面上显示给用户。
这样,用户可以在展示主机的浏览器上打开若干个Web页面,用户在每个Web页面都可以看到一个终端应用持续更新的日志数据。
与上述流程实现对应,本申请的实施例还提供了一种应用在服务器上的 提供终端应用日志的的装置、一种应用在终端上的提供终端应用日志的装置,和一种应用在展示主机上的获取终端应用日志的的装置。这三种装置均可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为逻辑意义上的装置,是通过展示主机、终端或服务器的CPU(Central Process Unit,中央处理器)将对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,除了图6所示的CPU、内存以及非易失性存储器之外,提供终端应用日志的装置所在的终端通常还包括用于进行无线信号收发的芯片等其他硬件;获取终端应用日志的装置所在的展示主机、提供终端应用日志的装置所在的服务器通常还包括用于实现网络通信功能的板卡等其他硬件。
图7所示为本申请实施例提供的一种提供终端应用日志的装置,应用在服务器上,包括标识及数据接收单元、日志数据请求接收单元和日志数据下发单元,其中:标识及数据接收单元用于接收终端上传的应用的日志标识信息和日志数据;日志数据请求接收单元用于接收展示主机的日志数据请求,所述日志数据请求中包括日志标识信息;日志数据下发单元用于向展示主机返回具有所述日志数据请求中日志标识信息的应用的日志数据。
一个例子中,所述装置还包括日志标识生成单元,用于根据展示主机的日志标识请求,生成应用的日志标识信息并下发给展示主机;供展示主机将所述日志标识信息提供给生成所述应用的日志数据的终端。
上个例子中,所述日志标识生成单元可以具体用于:根据展示主机浏览器的万维网Web页面访问请求,生成令牌Token,作为应用的日志标识信息下发给展示主机。
可选的,所述日志数据请求包括:展示主机的浏览器以一定周期发送的超文本传输协议Http请求;所述日志数据下发单元具体用于:将尚未下发给展示主机的、具有所述日志数据请求中日志标识信息的应用的日志数据,在Http响应中发送给展示主机。
可选的,所述标识及数据接收单元包括长连接建立模块、日志标识接收模块和日志数据接收模块,其中:长连接建立模块用于与终端建立套接字 Socket连接;日志标识接收模块用于接收终端通过所述Socket连接上传的应用的日志标识信息;日志数据接收模块用于接收终端通过所述Socket连接上传的所述应用的日志数据。
可选的,所述应用的日志标识信息包括:终端标识、或终端标识和应用标识。
图8所示为本申请实施例提供的一种提供终端应用日志的装置,应用在终端上,包括日志数据生成单元和标识及数据上传单元,其中:日志数据生成单元用于生成应用的日志数据;标识及数据上传单元用于向服务器上传所述应用的日志标识信息和日志数据。
一个例子中,所述装置还包括日志标识获取单元,用于从展示主机获取应用的日志标识信息;所述日志标识信息由服务器生成并下发给展示主机。
上个例子中,所述日志标识获取单元可以具体用于:扫描展示主机显示的二维码,所述二维码携带有应用的日志标识信息;所述日志标识信息可以包括:服务器生成的令牌Token。
可选的,所述标识及数据上传单元包括Socke连接建立模块、日志标识上传模块和日志数据上传模块,其中:Socke连接建立模块用于与服务器建立Socket连接;日志标识上传模块用于通过所述Socket连接上传应用的日志标识信息;日志数据上传模块用于通过所述Socket连接上传所述应用的日志数据。
图9所示为本申请实施例提供的一种获取终端应用日志的装置,应用在展示主机上,包括日志标识信息单元、日志数据请求发送单元和数据接收及展现单元,其中:日志标识信息单元用于获取应用的日志标识信息;日志数据请求发送单元用于向服务器发送日志数据请求,所述日志数据请求中包括应用的日志标识信息;数据接收及展现单元用于接收服务器返回的具有日志数据请求中日志标识信息的应用的日志数据,并展现接收的日志数据。
一个例子中,所述日志标识信息单元具体用于:向服务器发送日志标识请求,接收服务器生成的应用的日志标识信息;所述装置还包括:日志标识 提供单元,用于将从服务器接收的应用的日志标识信息提供给生成所述应用的日志数据的终端。
上述例子中,所述日志标识请求可以包括:浏览器的万维网Web页面访问请求;所述日志标识信息可以包括:服务器生成的令牌Token。
上述例子中,所述日志标识提供单元可以具体用于:根据服务器返回的应用的日志标识信息生成二维码进行显示,供生成所述应用的日志数据的终端扫描。
可选的,所述日志数据请求包括:展示主机的浏览器以一定周期发送的超文本传输协议Http请求;所述数据接收及展现单元具体用于:接收服务器在Http响应中返回的、具有日志数据请求中日志标识信息的应用的新增日志数据,并展现接收的日志数据。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信 息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。