CN109039724A - 日志上传方法和装置 - Google Patents
日志上传方法和装置 Download PDFInfo
- Publication number
- CN109039724A CN109039724A CN201810813874.7A CN201810813874A CN109039724A CN 109039724 A CN109039724 A CN 109039724A CN 201810813874 A CN201810813874 A CN 201810813874A CN 109039724 A CN109039724 A CN 109039724A
- Authority
- CN
- China
- Prior art keywords
- target journaling
- information
- server
- journaling file
- message
- 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
Classifications
-
- 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
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- 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/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种日志上传方法和装置,该方法通过由目标服务器向客户端主动发送第一即时通讯消息,其中,该第一即时通讯消息中指示了目标服务器所需要的目标日志文件的信息,从而能够使客户端根据该第一即时通讯消息来确定目标日志文件并上传至日志服务器;使得目标服务器可以从日志服务器获取目标日志文件,而无需被动的接收各个客户端的全部日志文件,再从众多日志文件中搜索查询客户端的故障问题所对应的日志文件,提升了服务器的系统性能。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种日志上传方法和装置。
背景技术
随着计算机技术的发展,客户端的用户逐渐增多,各平台的差异性使用户在使用客户端应用程序的时候,经常出现错误或崩溃的情况,为了降低这种情况的发生,开发人员需要对客户端的日志信息进行收集,通过对日志的分析处理来及时纠正应用程序存在的问题,提高用户体验。
对应用程序(也即客户端)而言,日志的重要性不言而喻。日志可以记录很多关键信息,包括程序运行时产生的错误信息、调试信息,和其它一些有用的状态信息等。但是,应用程序绝大部分时候是不会连接着集成开发环境的,开发人员不能够很方便地获取到客户端上的日志信息,尤其是线上用户的应用程序崩溃时,经常有些场景是很难复现的,因此,用户设备上的日志记录对消除故障显得尤为重要。
目前的日志上传方式主要是由客户端,即应用程序将本地记录的日志定期主动上传至服务器,那么当应用程序的用户量较大时,则容易存在多个客户端的大量日志集中上报而导致服务器的性能降低的问题。
由此可见,现有技术中的日志上传方案普遍会降低服务器的性能。
发明内容
本发明提供了一种日志上传方法和装置,以解决现有技术中的日志上传方案所存在的降低服务器性能的问题。
为了解决上述问题,根据本发明的一个方面,本发明公开了一种日志上传方法,应用于客户端,所述方法包括:
接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
根据所述第一即时通讯消息确定待上传的目标日志文件;
将所述目标日志文件上传至日志服务器。
可选地,所述接收来自目标服务器的第一即时通讯消息,包括:
上报异常信息至目标服务器,其中,所述异常信息包括所述客户端的ID;
接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
可选地,所述接收来自目标服务器的第一即时通讯消息,还包括:
接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
可选地,所述根据所述第一即时通讯消息确定待上传的目标日志文件,包括:
对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
确定所述消息内容中的目标模块信息;
将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
可选地,所述根据所述第一即时通讯消息确定待上传的目标日志文件之后,所述方法还包括:
将所述目标日志文件上传至预设服务器;
获取所述目标日志文件在所述预设服务器上的存储地址;
将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
可选地,所述将所述目标日志文件的属性信息上传至所述目标服务器,包括:
将所述目标日志文件的属性信息组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
将所述第二即时通讯消息上传至所述目标服务器。
根据本发明的另一方面,本发明还公开了一种日志上传装置,应用于客户端,所述装置包括:
接收模块,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
确定模块,用于根据所述第一即时通讯消息确定待上传的目标日志文件;
第一上传模块,用于将所述目标日志文件上传至日志服务器。
可选地,所述接收模块包括:
上报子模块,用于上报异常信息至目标服务器,其中,所述异常信息包括所述客户端的ID;
第一接收子模块,用于接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
可选地,所述接收模块还包括:
第二接收子模块,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
可选地,所述确定模块包括:
解析子模块,用于对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
第一确定子模块,用于确定所述消息内容中的目标模块信息;
第二确定子模块,用于将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
可选地,所述装置还包括:
第二上传模块,用于将所述目标日志文件上传至预设服务器;
获取模块,用于获取所述目标日志文件在所述预设服务器上的存储地址;
第三上传模块,用于将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
可选地,所述第三上传模块包括:
组装子模块,用于将所述目标日志文件的属性信息组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
上传子模块,用于将所述第二即时通讯消息上传至所述目标服务器。
与现有技术相比,本发明包括以下优点:
本发明通过由目标服务器向客户端主动发送第一即时通讯消息,其中,该第一即时通讯消息中指示了目标服务器所需要的目标日志文件的信息,从而能够使客户端根据该第一即时通讯消息来确定目标日志文件并上传至日志服务器;使得目标服务器可以从日志服务器获取目标日志文件,而无需被动的接收各个客户端的全部日志文件,再从众多日志文件中搜索查询客户端的故障问题所对应的日志文件,不仅提升了服务器的系统性能,还能够提升对客户端故障定位的效率。
附图说明
图1是本发明的一种日志上传系统实施例的结构框图;
图2是本发明的一种日志上传方法实施例的步骤流程图;
图3是本发明的一种日志上传装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
参照图1,示出了本发明的一种日志上传系统实施例的结构框图。
该日志上传系统可以包括应用程序(即客户端)以及与该应用程序通信的服务器,其中,服务器可以包括IM(即时通讯)服务器和Log(日志)服务器,其中,IM服务器即为目标服务器。
其中,在应用程序侧本发明实施例的系统部署了日志模块、消息处理模块以及爱奇艺公司的IMSDK(即时通讯软件开发工具包,InstantMessaging Software DevelopmentKit),其中,该IMSDK也可以替换为IM消息通讯系统。
IM服务器可以发送和接收多种类型的IM消息,IM消息的格式可以是json格式。应用程序侧的IMSDK需要对接收自IM服务器的各种类型的IM消息进行格式解析,从而将解析出的内容(具体可以包括消息类型和消息内容)分发给不同的功能模块去实现不同的功能。其中,消息类型和消息内容与分发的功能模块相关。消息类型可以包括日志类型、图片类型、语音类型等等。譬如日志类型的消息,在进行解析后就发送给日志模块去处理。
对于消息类型,如日志类型消息的消息体中的itype=”log”、图片类型消息的消息体中的itype=”img”,语音类型消息的消息体中itype=”audio”,用以区分不同的消息类型,这是IM服务器和客户端的约定。消息携带的具体内容,即消息内容可以是json的另一个字段body,如body=”xxxxx”。如果该应用程序只需要日志一种功能,那就只需要对itype=”log”的消息进行格式解析,然后对解析后的内容进行处理就可以了。
这里,IMSDK的主要功能是IM消息的收发以及对IM消息进行解析和组装。
消息处理模块,主要用于对IM消息解析后的内容作进一步处理。主要负责IMSDK与日志模块(或者其它功能模块)的对接,即,根据接收到的IM消息的消息类型和消息内容,来将不同类型的IM消息分发给相应的功能模块。例如日志类型消息,则根据该消息类型可以直接确定分发的模块为日志模块。再如图片类型消息,则需要根据消息类型(即图片类型)以及消息内容中的与功能模块相关的私有信息来共同确定解析后的内容将分发至的模块(例如功能模块1和功能模块2)。
日志模块,用于在客户端本地记录日志(Log)文件,该日志文件包括各种日志信息,具体可以包括时间信息、设备信息、用户信息、应用程序的各个功能模块的信息、apk(Android安装包)运行的关键日志、异常信息等。
这里结合图1所示的日志上传系统来对图2示出的本发明的一种应用于客户端的日志上传方法实施例的步骤流程图进行详细阐述,该方法具体可以包括如下步骤:
步骤101,接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
其中,IM消息的类型很多,例如日志类型,即指示客户端上传日志的类型;图片类型,即指示客户端上传图片的类型等。
这里,本发明实施例的第一IM消息的消息类型为指示客户端上传日志的类型。此外,该第一IM消息中也携带了目标服务器,即IM服务器所想要获取的目标日志文件的相关信息,因此,该第一IM消息用于指示客户端上传目标日志文件。其中,这里的目标日志文件可以包括异常日志,也可以包括非异常日志。
那么对于IM服务器从客户端获取日志的时机来说,可以至少包括以下两种时机:时机一,在客户端向IM服务器上报故障时,即客户端发生异常时;时机二,在服务器需要主动统计某些日志时。
下面针对上述两种时机,本发明实施例的方法给出了两种步骤101的实现方式。
对应于时机一的步骤101的实现方式包括:
上报异常信息至目标服务器;
其中,如果在客户端运行过程中,客户端发生了异常,则可以通过一些保障入口/或者用户通过客服报障的功能,来描述一些故障问题,然后,客户端将该故障问题连同客户端ID作为异常信息上报给IM服务器。即,异常信息包括故障问题和客户端ID。
然后,服务器侧的开发人员通过对故障问题进行简单分析后可以确定异常的目标模块;或者,由IM服务器对该故障问题进行分析,从而确定异常的目标模块。然后,IM服务器触发一条携带目标模块信息的日志类型的IM消息给客户端;
或者,服务器侧的开发人员/或IM服务器在分析故障信息后,确定异常的目标模块,以及与该目标模块相关的其他模块,然后IM服务器触发一条携带目标模块以及相关的其他模块的信息的日志类型的IM消息给客户端;
此外,服务器侧在接收到目标日志文件后,如果发现该目标日志文件不足以分析出客户端故障并解决故障,则服务器还可以再发送一条日志类型的IM消息,该IM消息携带有与解决该故障相关的其他功能模块的信息,这样,IM服务器可以获取到与该故障相关的其他功能模块的日志文件。
其中,由于上报的异常信息中携带有客户端ID,因此,IM服务器侧知道当前是哪个客户端在上报故障。
接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
如上所述,用户报告故障后,IM服务器可以生成该第一IM消息并发送至客户端侧,这里,该第一IM消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
其中,本实施例的目标日志文件为描述该目标模块异常的日志文件。
这样,本发明实施例通过在客户端发生异常时,用户上报故障信息,并由目标服务器向该客户端发送第一IM消息,其中,第一IM消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件,从而使得日志文件的上传时机由服务器控制,并有针对性的请求获取发生故障的问题模块的异常日志文件,无需从客户端定期上传的大量日志文件中查找问题模块的异常日志文件,不仅提升了服务器性能,还能够提升对客户端的故障定位效率。
对应于时机二的步骤101的实现方式包括:
接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
其中,本实施例的目标日志文件不同于上述时机一实施例中用于描述目标模块异常的日志文件,而是关于至少一个目标模块的所有日志文件,包括关于至少一个目标模块的异常日志和非异常日志。
也就是说,不论客户端是否发送异常信息到IM服务器,IM服务器都可以在需要主动统计某些类型的日志时,主动地去指示客户端发送IM服务器所需要的目标日志文件,这里的目标日志文件是对应于服务器关注的客户端上的至少一个目标模块(即目标功能模块)的日志文件。
这样,当目标服务器想要统计某些类型的日志文件时,只需要向一个或多个客户端发送第一IM消息,并在该第一IM消息中携带指示客户端上传哪些功能模块的日志文件的信息,即,第一IM消息用于指示客户端上传至少一个目标功能模块的日志文件。使得目标服务器可以对各个客户端的日志通过IM消息进行远程控制,快速准确的获取所需的日志文件。
此外,在另一个可选地实施例中,根据客户端用户是否在线的情况不同,步骤101的实现方式可以包括:
若所述客户端处于用户登录状态,则接收来自目标服务器的第一即时通讯消息;
若所述客户端处于用户离线状态,则在所述客户端切换至用户登录状态时,接收来自目标服务器的第一即时通讯消息的离线消息。
具体而言,当IM服务器指示某个客户端上传目标日志文件时,IM服务器可以首先判断该客户端是否处于用户在线状态,如客户端处于用户在线状态,也即,用户登录了该客户端的情况下,则IM服务器发送的第一IM消息可以被客户端接收到,所以,在客户端处于用户登录状态下,IM服务器会主动发送一条IM消息,这样,客户端可以接收来自IM服务器的第一IM消息。
相反,如果用户未登录该客户端,即该客户端处于用户离线状态,那么客户端无法接收到IM服务器发送的任何消息,那么该第一IM消息可以作为离线消息可以在用户登录后,由用户主动拉取;或者,由IM服务器主动推送两种方式来接收该第一IM消息。
本实施例中的目标服务器可以是对应于客户端的IM服务器。
本发明实施例的方法可以在客户端的用户在线时,第一时间接收来自目标服务器的指示上传目标日志文件的第一IM消息;在用户不在线时,目标服务器可以通过第一IM消息的离线消息的方式,待用户在线时,将离线消息发送至客户端,使得,即使用户不在线,本发明实施例的方法也可以通过离线消息的方式,待用户上线后第一时间触发客户端对目标服务器所需日志的上传,不会丢失对指定用户的日志搜集。
步骤102,根据所述第一即时通讯消息确定待上传的目标日志文件;
其中,第一IM信息用于指示客户端上传目标日志文件,也即该第一IM信息中携带了与需上传的目标日志文件有关的信息。
其中,在一个实施例中,在执行步骤102时,可以通过以下子步骤来实现:
S11,对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
如图1所示,当IM服务器将第一IM消息发送至客户端(即应用程序)侧时,IMSDK首先接收到该第一IM消息,IMSDK可以对该第一IM消息进行格式解析,从而确定该第一IM消息的消息类型和消息内容。
其中,IMSDK对IM消息进行格式解析的具体操作,可以参照上述实施例,这里不再赘述。
在本发明实施例中,由于IM服务器和客户端的协议不同,因此,同一种消息需要格式转换,才能够被对方识别,那么本发明实施例的方法通过对来自IM服务器的第一IM消息进行格式解析,从而能够便于解析后的内容能够被消息处理模块识别,提升了系统性能。
如上述实施例所述,IM消息的类型有很多,针对IMSDK来说,其需要对IM服务器下发的所有IM消息都进行格式解析。而由于本实施例中步骤101接收到的第一IM消息是用于指示客户端上传目标日志文件的,也即,该第一IM消息的消息类型为日志类型。
消息类型,用于区分日志消息和其它类型的消息,对于日志类型的消息,其消息内容中含有服务器所需日志对应的功能模块等信息。
S12,确定所述消息内容中的目标模块信息;
这里,消息处理模块在接收到IMSDK解析的消息类型和消息内容后,可以确定该第一IM消息的消息类型为指示所述客户端上传日志的类型,因此,消息处理模块需要将对该第一IM消息处理后的数据传输给日志模块;
其中,由于IM服务器所发送的用于获取日志的IM消息中可以携带表示获取哪些功能模块的日志信息的目标模块信息,因此,对于消息处理模块对该第一IM消息内容的处理来说,则可以包括确定消息内容中与目标日志文件有关的目标模块信息(例如该目标模块信息包括目标功能模块1的标识信息、目标功能模块2的标识信息)。进而将该目标模块信息发送给日志模块。
而在其他实施例中,如果该第一IM消息的消息类型为非日志类型,则消息处理模块可以将对该第一IM消息处理后的数据传输给其他功能模块。
S13,将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
这里,消息处理模块可以将对第一IM消息识别后的结果——目标模块信息发送给日志模块,日志模块可以根据接收到的各个目标功能模块的标识信息,来确定IM服务器需要获取哪些目标模块的日志文件,就可以将所述目标模块信息对应的日志文件(例如目标功能模块1的日志文件、目标功能模块2的日志文件)确定为待上传的目标日志文件。
其中,如果步骤101的执行方式如果是采用上述时机1的执行方式,则这里的目标日志文件为描述目标功能模块1异常的日志文件,和描述目标功能模块2异常的日志文件;如果步骤101的执行方式如果是采用上述时机2的执行方式,则这里的目标日志文件为目标功能模块1的所有日志文件,和描述目标功能模块2的所有日志文件。
这样,本发明实施例通过对第一IM消息进行格式解析,从而能够确定该第一IM消息的消息类型,以及其所携带的消息内容,并可以确定该消息类型为指示客户端上传日志,以及根据消息内容从日志模块获取对应目标模块的目标日志文件,使得IM服务器对用于定位问题的目标日志文件的获取,以IM消息的形式来转达给客户端,不仅提升了IM服务器的日志获取效率,而且,能够对其所获取的日志文件进行准确定位。
步骤103,将所述目标日志文件上传至日志服务器。
可以通过日志上传方式1,由日志模块将查找到的目标日志文件直接上传至Log服务器。然后,IM服务器可以从Log服务器读取该目标日志文件。
这种日志上传方式更加直接,使得IM服务器能够更快地获取到客户端的故障问题对应的日志文件或者需要统计的目标日志文件,提升了客户端的服务器性能。
本发明通过由目标服务器向客户端主动发送第一即时通讯消息,其中,该第一即时通讯消息中指示了目标服务器所需要的目标日志文件的信息,从而能够使客户端根据该第一即时通讯消息来确定目标日志文件并上传至日志服务器;使得目标服务器可以从日志服务器获取目标日志文件,而无需被动的接收各个客户端的全部日志文件,再从众多日志文件中搜索查询客户端的故障问题所对应的日志文件,不仅提升了服务器的系统性能,还能够提升对客户端故障定位的效率。
可选地,在步骤102之后,在另一个实施例中,根据本发明实施例的方法还可以包括:
将所述目标日志文件上传至预设服务器;
其中,该预设服务器可以是云盘、上述Log服务器、其他已知的服务器等。
获取所述目标日志文件在所述预设服务器上的存储地址;
一般日志文件比较大,日志模块可以在获取到本地的目标日志文件后将其上传至日志服务器器或者云盘等进行存储,并在上传成功后返回日志在该预设服务器上的url地址。
其中,该存储地址可以是该目标日志文件备份到预设服务器上的存储地址而非客户端本地存储地址。
将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
其中,由于目标日志文件的尺寸过大,那么直接将其上传至IM服务器,将会造成传输时间长,如果异常中断,则造成日志上传失败的问题。那么本发明实施例中通过将目标日志文件的存储信息(尺寸较小)上传至IM服务器,使得传输数据量较小,避免IM服务器侧获取日志失败,可以提升日志上传成功率。
其中,在一个实施例中,所述将所述目标日志文件的属性信息上传至所述目标服务器步骤可以包括:
将所述目标日志文件的属性信息(对应于下述具体示例中的第二属性信息)组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息不仅包括目标日志文件的存储信息,还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
将所述第二即时通讯消息上传至所述目标服务器。
具体示例:如图1所示,可以采用日志上传方式2来将目标日志文件上传到目标服务器。日志模块可以在本地存储的Log文件中查找所需要的目标日志文件,例如目标功能模块1的日志文件和目标功能模块2的日志文件。
日志模块将目标日志文件的第一属性信息发送给消息处理模块,这里的第一属性信息包括目标日志文件在客户端的本地存储路径、对应该目标日志文件的目标模块信息,可选地,该第一属性信息还可以包括用户信息、该目标日志文件的名称;
消息处理模块,根据所述本地存储路径和目标日志文件的名称,在本地查找目标日志文件,并将目标日志文件上传给预设服务器,例如云盘,云盘会返回该目标日志文件的云盘地址url给消息处理模块;
然后,消息处理模块将云盘地址url、目标模块信息、用户信息、目标日志文件的名称发送给IMSDK;
IMSDK将第二属性信息(这里包括云盘地址url、目标模块信息、用户信息、目标日志文件的名称)组装成消息类型为文件类型,即itype=”file”的第二IM消息。其中,该第二IM消息包括对应该目标日志文件的目标模块信息、用户信息、云盘地址url、目标日志文件的名称等信息。
因此,IMSDK在组装第二IM消息时,会将该消息组装成文件类型的消息格式。对于消息内容存在敏感信息的情况,则可以根据IMSDK提供的加密接口来对消息内容中的敏感信息进行加密。
最后,IMSDK可以将第二IM消息返回给IM服务器。IM服务器负责接收该第二IM消息。
开发分析人员分析该条第二IM消息的时候,IM服务器再去云盘中,根据该云盘地址url中去获取相应名称的目标日志文件。
这样,本发明实施例通过将目标日志文件的属性信息(包括在预设服务器上的存储信息、所述目标日志文件对应的目标模块的信息、目标日志文件的名称)以IM消息的形式传输至IM服务器,使得目标日志文件得到隐藏,避免了敏感信息的暴露,提升了日志文件传输的安全性。
借助于本发明上述实施例的技术方案,Log上传的时机可控,客户端不需要主动的上传Log,只有在定位问题或者后台服务器有日志统计需求时,服务器可以远程定向的通知客户端上传所需要的日志。相较于现有技术中的客户端主动上传日志文件的方式,可以减少客户端向服务器发送日志的Http请求,提高服务器的性能,节约服务器的负载和空间,以及减少服务器对客户端定位故障时对所需日志的搜索时间。且减少定位故障时服务器侧与用户的沟通环节,节约用户时间,有助于开发人员快速定位客户端的故障,以便及时修复客户端的故障。
此外,本发明实施例中,服务器可以收到客户端上报故障的异常点的日志文件,或者服务器所统计的目标功能模块的日志文件,服务器无需从众多客户端上传的全部日志中查找异常点对应的日志文件,提升了系统性能,避免了对不必要的日志文件的接收,也提升了对客户端的故障定位的效率。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
与上述本发明实施例所提供的方法相对应,参照图3,示出了本发明一种日志上传装置实施例的结构框图,应用于客户端,该装置具体可以包括如下模块:
接收模块31,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
确定模块32,用于根据所述第一即时通讯消息确定待上传的目标日志文件;
第一上传模块33,用于将所述目标日志文件上传至日志服务器。
本发明通过由目标服务器向客户端主动发送第一即时通讯消息,其中,该第一即时通讯消息中指示了目标服务器所需要的目标日志文件的信息,从而能够使客户端根据该第一即时通讯消息来确定目标日志文件并上传至日志服务器;使得目标服务器可以从日志服务器获取目标日志文件,而无需被动的接收各个客户端的全部日志文件,再从众多日志文件中搜索查询客户端的故障问题所对应的日志文件,不仅提升了服务器的系统性能,还能够提升对客户端故障定位的效率。
可选地,所述接收模块31包括:
上报子模块,用于上报异常信息至目标服务器,其中,所述异常信息包括所述客户端的ID;
第一接收子模块,用于接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
可选地,所述接收模块31还包括:
第二接收子模块,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
可选地,所述确定模块32包括:
解析子模块,用于对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
第一确定子模块,用于确定所述消息内容中的目标模块信息;
第二确定子模块,用于将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
可选地,所述装置还包括:
第二上传模块,用于将所述目标日志文件上传至预设服务器;
获取模块,用于获取所述目标日志文件在所述预设服务器上的存储地址;
第三上传模块,用于将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
可选地,所述第三上传模块包括:
组装子模块,用于将所述目标日志文件的属性信息组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
上传子模块,用于将所述第二即时通讯消息上传至所述目标服务器。
借助于本发明上述实施例的技术方案,Log上传的时机可控,客户端不需要主动的上传Log,只有在定位问题或者后台服务器有日志统计需求时,服务器可以远程定向的通知客户端上传所需要的日志。相较于现有技术中的客户端主动上传日志文件的方式,可以减少客户端向服务器发送日志的Http请求,提高服务器的性能,节约服务器的负载和空间,以及减少服务器对客户端定位故障时对所需日志的搜索时间。且减少定位故障时服务器侧与用户的沟通环节,节约用户时间,有助于开发人员快速定位客户端的故障,以便及时修复客户端的故障。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种日志上传方法和一种日志上传装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种日志上传方法,应用于客户端,其特征在于,包括:
接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
根据所述第一即时通讯消息确定待上传的目标日志文件;
将所述目标日志文件上传至日志服务器。
2.根据权利要求1所述的方法,其特征在于,所述接收来自目标服务器的第一即时通讯消息,包括:
上报异常信息至目标服务器,其中,所述异常信息包括所述客户端的ID;
接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
3.根据权利要求1所述的方法,其特征在于,所述接收来自目标服务器的第一即时通讯消息,还包括:
接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
4.根据权利要求1所述的方法,其特征在于,所述根据所述第一即时通讯消息确定待上传的目标日志文件,包括:
对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
确定所述消息内容中的目标模块信息;
将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
5.根据权利要求1所述的方法,其特征在于,所述根据所述第一即时通讯消息确定待上传的目标日志文件之后,所述方法还包括:
将所述目标日志文件上传至预设服务器;
获取所述目标日志文件在所述预设服务器上的存储地址;
将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
6.根据权利要求5所述的方法,其特征在于,所述将所述目标日志文件的属性信息上传至所述目标服务器,包括:
将所述目标日志文件的属性信息组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
将所述第二即时通讯消息上传至所述目标服务器。
7.一种日志上传装置,应用于客户端,其特征在于,包括:
接收模块,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传目标日志文件;
确定模块,用于根据所述第一即时通讯消息确定待上传的目标日志文件;
第一上传模块,用于将所述目标日志文件上传至日志服务器。
8.根据权利要求7所述的装置,其特征在于,所述接收模块包括:
上报子模块,用于上报异常信息至目标服务器,其中,所述异常信息包括所述客户端的ID;
第一接收子模块,用于接收来自所述目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传用于描述目标模块异常的目标日志文件。
9.根据权利要求7所述的装置,其特征在于,所述接收模块还包括:
第二接收子模块,用于接收来自目标服务器的第一即时通讯消息,其中,所述第一即时通讯消息用于指示所述客户端上传至少一个目标模块的目标日志文件。
10.根据权利要求7所述的装置,其特征在于,所述确定模块包括:
解析子模块,用于对所述第一即时通讯消息进行格式解析,确定所述第一即时通讯消息的消息类型、消息内容;
第一确定子模块,用于确定所述消息内容中的目标模块信息;
第二确定子模块,用于将所述目标模块信息对应的日志文件确定为待上传的目标日志文件。
11.根据权利要求7所述的装置,其特征在于,所述装置还包括:
第二上传模块,用于将所述目标日志文件上传至预设服务器;
获取模块,用于获取所述目标日志文件在所述预设服务器上的存储地址;
第三上传模块,用于将所述目标日志文件的属性信息上传至所述目标服务器,其中,所述属性信息包括所述目标日志文件的在预设服务器上的存储地址。
12.根据权利要求11所述的装置,其特征在于,所述第三上传模块包括:
组装子模块,用于将所述目标日志文件的属性信息组装为第二即时通讯消息,其中,所述第二即时通讯消息的消息类型为文件类型,所述属性信息还包括所述目标日志文件对应的目标模块的信息、目标日志文件的名称;
上传子模块,用于将所述第二即时通讯消息上传至所述目标服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810813874.7A CN109039724B (zh) | 2018-07-23 | 2018-07-23 | 日志上传方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810813874.7A CN109039724B (zh) | 2018-07-23 | 2018-07-23 | 日志上传方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039724A true CN109039724A (zh) | 2018-12-18 |
CN109039724B CN109039724B (zh) | 2022-02-01 |
Family
ID=64645366
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810813874.7A Active CN109039724B (zh) | 2018-07-23 | 2018-07-23 | 日志上传方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039724B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710490A (zh) * | 2018-12-20 | 2019-05-03 | 网易(杭州)网络有限公司 | 客户端日志的采集方法、装置、存储介质和电子设备 |
CN110209553A (zh) * | 2019-06-11 | 2019-09-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据获取方法及装置 |
CN110995500A (zh) * | 2019-12-16 | 2020-04-10 | 深圳市网心科技有限公司 | 节点日志管控方法、系统及相关组件 |
CN111147296A (zh) * | 2019-12-24 | 2020-05-12 | 北京奇艺世纪科技有限公司 | 一种信息获取方法及装置 |
CN112437140A (zh) * | 2020-11-13 | 2021-03-02 | 北京经纬恒润科技股份有限公司 | 一种远程导出tbox日志的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734881A (zh) * | 2014-12-11 | 2015-06-24 | 天津中兴智联科技有限公司 | 一种日志和异常探针的实现方法 |
CN105357584A (zh) * | 2015-12-11 | 2016-02-24 | Tcl集团股份有限公司 | 一种基于智能电视的用户行为日志分类上传方法及系统 |
CN105430681A (zh) * | 2015-11-04 | 2016-03-23 | 努比亚技术有限公司 | 异常自动上传及恢复方法、装置及移动终端 |
WO2016161857A1 (zh) * | 2015-04-09 | 2016-10-13 | 北京易掌云峰科技有限公司 | 一种多租户高并发的即时通讯云平台 |
CN107276789A (zh) * | 2017-05-19 | 2017-10-20 | 努比亚技术有限公司 | 日志上传方法、装置及计算机可读存储介质 |
CN107453889A (zh) * | 2016-05-31 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种日志文件的上传方法及装置 |
-
2018
- 2018-07-23 CN CN201810813874.7A patent/CN109039724B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104734881A (zh) * | 2014-12-11 | 2015-06-24 | 天津中兴智联科技有限公司 | 一种日志和异常探针的实现方法 |
WO2016161857A1 (zh) * | 2015-04-09 | 2016-10-13 | 北京易掌云峰科技有限公司 | 一种多租户高并发的即时通讯云平台 |
CN105430681A (zh) * | 2015-11-04 | 2016-03-23 | 努比亚技术有限公司 | 异常自动上传及恢复方法、装置及移动终端 |
CN105357584A (zh) * | 2015-12-11 | 2016-02-24 | Tcl集团股份有限公司 | 一种基于智能电视的用户行为日志分类上传方法及系统 |
CN107453889A (zh) * | 2016-05-31 | 2017-12-08 | 腾讯科技(深圳)有限公司 | 一种日志文件的上传方法及装置 |
CN107276789A (zh) * | 2017-05-19 | 2017-10-20 | 努比亚技术有限公司 | 日志上传方法、装置及计算机可读存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109710490A (zh) * | 2018-12-20 | 2019-05-03 | 网易(杭州)网络有限公司 | 客户端日志的采集方法、装置、存储介质和电子设备 |
CN110209553A (zh) * | 2019-06-11 | 2019-09-06 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据获取方法及装置 |
CN110209553B (zh) * | 2019-06-11 | 2023-06-20 | 湖南快乐阳光互动娱乐传媒有限公司 | 数据获取方法及装置 |
CN110995500A (zh) * | 2019-12-16 | 2020-04-10 | 深圳市网心科技有限公司 | 节点日志管控方法、系统及相关组件 |
CN111147296A (zh) * | 2019-12-24 | 2020-05-12 | 北京奇艺世纪科技有限公司 | 一种信息获取方法及装置 |
CN112437140A (zh) * | 2020-11-13 | 2021-03-02 | 北京经纬恒润科技股份有限公司 | 一种远程导出tbox日志的方法及装置 |
CN112437140B (zh) * | 2020-11-13 | 2023-05-26 | 北京经纬恒润科技股份有限公司 | 一种远程导出tbox日志的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109039724B (zh) | 2022-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109039724A (zh) | 日志上传方法和装置 | |
US10423469B2 (en) | Router management by an event stream processing cluster manager | |
CN107453889B (zh) | 一种日志文件的上传方法及装置 | |
CN103973781B (zh) | 一种基于代理服务器的屏幕监控方法及其系统 | |
CN108900374B (zh) | 一种应用于dpi设备的数据处理方法和装置 | |
CN106301823B (zh) | 一种关键组件的故障告警方法、装置及大数据管理系统 | |
CN109614290A (zh) | 容器中的进程异常信息记录方法及系统 | |
CN102664909A (zh) | 通过用户标识符重新建立推送通知信道 | |
US9152441B2 (en) | Systems and methods involving virtual machine host isolation over a network via a federated downstream cluster | |
CN103795762A (zh) | 一种反向代理的测试方法及系统 | |
CN111258971A (zh) | 一种基于访问日志的应用状态监控报警系统及方法 | |
CN108390907B (zh) | 一种基于Hadoop集群的管理监控系统及方法 | |
CN116055524A (zh) | 用于互联网平台与物联网设备的交互方法、处理器及装置 | |
CN105099769A (zh) | 业务平台的异常操作处理方法、设备和系统 | |
US9166991B2 (en) | Identifying business transactions from traffic in an enterprise content management system | |
US10826965B2 (en) | Network monitoring to identify network issues | |
CN104468248B (zh) | 业务性能的监控方法、反向代理服务器、统计分析服务器及系统 | |
CN104539449B (zh) | 一种故障信息处理方法与相关装置 | |
US20140344418A1 (en) | Dynamic configuration analysis | |
CN104599092B (zh) | 用于监控订单业务的方法及设备 | |
CN110119334A (zh) | 一种页面脚本监控方法及装置 | |
CN108880920B (zh) | 云服务管理方法、装置以及电子设备 | |
JP2006190033A (ja) | 情報処理システム及び通信再生処理方法 | |
CN112882892B (zh) | 数据处理方法和装置、电子设备及存储介质 | |
CN109634931B (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 |