CN105429775B - 一种上报日志的方法及装置 - Google Patents

一种上报日志的方法及装置 Download PDF

Info

Publication number
CN105429775B
CN105429775B CN201410484552.4A CN201410484552A CN105429775B CN 105429775 B CN105429775 B CN 105429775B CN 201410484552 A CN201410484552 A CN 201410484552A CN 105429775 B CN105429775 B CN 105429775B
Authority
CN
China
Prior art keywords
log
logs
abnormal operation
client
module
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.)
Active
Application number
CN201410484552.4A
Other languages
English (en)
Other versions
CN105429775A (zh
Inventor
王�琦
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201410484552.4A priority Critical patent/CN105429775B/zh
Publication of CN105429775A publication Critical patent/CN105429775A/zh
Application granted granted Critical
Publication of CN105429775B publication Critical patent/CN105429775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种上报日志的方法及装置,属于互联网通信领域。所述方法包括:检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;根据所述级别确定所述日志是否为异常操作的日志;如果是,则获取所述客户端最新产生的预设大小的日志;将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件。所述装置包括:第一获取模块、确定模块、第二获取模块和发送模块。本发明能够避免浪费用户流量,以达到节省用户流量的目的。

Description

一种上报日志的方法及装置
技术领域
本发明涉及互联网通信领域,特别涉及一种上报日志的方法及装置。
背景技术
对于客户端的日志项目,其主要目的是在客户端发生错误时记录现场,对发生错误的情况收集现场数据,由客户端上报发生错误时的日志给服务器,技术人员在服务器端通过查看日志分析数据,解决客户端发生的错误,并在一定程度上预料未来可能发生的异常状况,所以如何上报日志尤为重要。
其中,客户端在运行时实时产生日志,将产生的日志存储在日志文件中。目前,客户端可以通过如下两种方法将产生的日志上报给服务器,包括:
第一种,设置上报日志的时间间隔,每隔该时间间隔上报一次客户端产生的日志文件。例如,假设设置上报日志的时间间隔为24小时,则每隔24小时上报一次客户端产生的日志文件。
第二种,设置上报日志的文件大小阈值,当客户端存储日志的日志文件大小达到该文件大小阈值时,将该日志文件上报给服务器,新建一个空白日志文件,使客户端在此时之后将产生的日志存储在该空白日志文件中。例如,假设设置上报日志的文件大小阈值为1MB,则当存储日志的日志文件大小达到1MB时就会上报该日志文件并新建一个空白日志文件,当客户端再次产生日志时,将该日志存储在该空白日志文件中。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
上述两种方法上报的日志文件中包含大量用户正常操作的流水日志或者包含的都是用户正常操作的流水日志,这些日志对技术人员分析数据来说,都是无用日志,如此导致用户流量的大量损耗以及大量流量的浪费。
发明内容
为了避免浪费用户流量,以达到节省用户流量的目的,本发明提供一种上报日志的方法及装置。所述技术方案如下:
一种上报日志的方法,其特征在于,所述方法包括:
检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;
根据所述级别确定所述日志是否为异常操作的日志;
如果是,则获取所述客户端最新产生的预设大小的日志;
将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件。
一种上报日志的装置,其特征在于,所述装置包括:
第一获取模块,用于检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;
确定模块,用于根据所述级别确定所述日志是否为异常操作的日志;
第二获取模块,用于获取如果是异常操作的日志,则获取所述客户端最新产生的预设大小的日志;
发送模块,用于将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件。
在本发明实施例中,通过获取客户端执行操作时产生的日志的级别,根据该级别确定该日志是否为异常操作的日志,当该日志时异常操作的日志时,获取客户端最新产生的预设大小的日志并组成日志文件,向服务器发送该日志文件,由于该日志文件包含异常操作的日志以及在该异常操作之前最新产生的日志,对技术人员分析数据有利用价值,从而能够避免浪费用户流量,以达到节省用户流量的目的。
附图说明
图1是本发明实施例1提供的一种上报日志的方法流程图;
图2是本发明实施例2提供的一种上报日志的方法流程图;
图3是本发明实施例3提供的一种上报日志的装置结构示意图;
图4是本发明实施例4提供的一种终端结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明提供了一种上报日志的方法,参见图1,该方法包括:
步骤101:当检测到客户端执行操作以及客户端产生该操作的日志时,根据该操作获取该日志的级别。
步骤102:根据该级别确定该日志是否为异常操作的日志。
步骤103:如果是,则获取客户端最新产生的预设大小的日志。
步骤104:将获取的预设大小的日志组成日志文件,并向服务器发送该日志文件。
在本发明实施例中,通过获取客户端执行操作时产生的日志的级别,根据该级别确定该日志是否为异常操作的日志,当该日志时异常操作的日志时,获取客户端最新产生的预设大小的日志并组成日志文件,向服务器发送该日志文件,由于该日志文件包含异常操作的日志以及在该异常操作之前最新产生的日志,对技术人员分析数据有利用价值,从而能够避免浪费用户流量,以达到节省用户流量的目的。
实施例2
本发明提供了一种上报日志的方法。本发明的执行主体可以为终端,参见图2,该方法包括:
步骤201:当检测到客户端执行操作以及客户端产生该操作的日志时,根据该操作获取该日志的级别。
其中,用户可以使用客户端执行各种操作,在执行操作时,客户端产生该操作的日志,该日志用于记录执行该操作的执行情况,然后将该日志存储在终端本地。例如,对于用于上传短视频的客户端,该客户端可以包括上传视频、拍摄视频、编辑视频和从终端本地获取视频等操作,如果用户想上传一短视频,用户需要使用终端拍摄视频或从终端本地获取视频,然后对得到的视频进行编辑,再上传编辑好的视频。其中,该客户端在执行每个操作的过程中,不断产生日志,用于记录执行操作的情况。
在本步骤中,终端实时对客户端进行检测,当检测出客户端执行操作以及客户端产生该操作的日志时,获取该操作的当前操作情况,如果当前操作情况为该操作未发生操作异常,则将该日志的级别设置为该操作在未发生异常情况下对应的级别,如果当前操作情况为该操作发生异常,则获取发生的异常,根据该操作和发生的异常获取对应的级别,将该日志的级别设置为获取的级别。
其中,客户端在执行操作的过程中,终端实时判断当前客户端执行的操作有无发生异常,从而得到该操作的当前操作情况。
其中,事先划分多种级别,定义每种操作在未发生异常时对应的级别,以及在发生异常时,定义该操作和该异常共同对应的级别,每种操作在发生异常时对应的级别高于其在未发生异常时对应的级别。例如,以用于上传短视频的客户端为例,事先划分出Fatal,Critical,Error,Warn,Info,Debug六个不同的级别,其中,Fatal高于Critical,Critical高于Error,Error高于Warn,Warn高于Info,Info高于Debug;对于“上传视频”的操作,定义“上传视频”的操作在未发生异常时对应的级别为Info,在客户端执行“上传视频”的操作的过程中可能会发生三种异常分别为异常1、异常2和异常3,定义“上传视频”的操作和异常1对应的级别为Fatal,“上传视频”的操作和异常2对应的级别为Fatal,以及“上传视频”的操作和异常3对应的级别为Warn。
对于“拍摄视频”的操作,定义“拍摄视频”的操作在未发生异常对应的级别为Debug,在客户端执行“拍摄视频”的操作的过程中可能会发生两种异常分别为异常A和异常B,定义“拍摄视频”的操作和异常A对应的级别为Critical,定义“拍摄视频”的操作和异常B对应的级别为Error。
对于“编辑视频”的操作,定义“编辑视频”的操作在未发生异常时对应的级别为Info,在客户端执行“编辑视频”的操作过程中可能会发生三种异常分别为异常a、异常b和异常c,定义“编辑视频”的操作和异常a对应的级别为Fatal,“编辑视频”的操作和异常b对应的级别为Critical,“编辑视频”的操作和异常c对应的级别为Fatal。
对于“从终端本地获取视频”的操作,定义“从终端本地获取视频”的操作在未发生异常时对应的级别为Info,在客户端执行“从终端本地获取视频”的操作过程中可能会发生两种异常,分别为异常d和异常e,定义“从终端本地获取视频”的操作和异常d对应的级别为Error以及“从终端本地获取视频”的操作和异常e对应的级别为Warn。
在本步骤中,假设客户端正在执行“拍摄视频”的操作,在当前时间产生一条日志1并将该日志1存储在终端本地。终端检测出客户端执行“拍摄视频”的操作以及客户端产生的日志,获取该操作的当前操作情况,假设客户端在执行“拍摄视频”的操作过程中发生异常A,所以该当前操作情况为发生操作异常,根据“拍摄视频”的操作和异常A,获取对应的级别为Critical,将该日志1的级别设置为级别Critical。
步骤202:根据该级别确定该日志是否为异常操作的日志。
具体地,判断该级别是否为预设级别,如果是,则确定该日志为异常操作的日志,如果不是则确定该日志不是异常操作的日志。
其中,由于每种操作在发异常时对应的级别高于其在未发异常时对应的级别,因此可以预设级别最高的几个级别,这些预设级别都是操作在发生异常时对应的级别,因此当该日志的级别为预设级别时,便可以将该日志确定为异常操作的日志。
例如,假设预设级别为Fatal和Critical,这两个级别都是异常操作对应的级别。其中,日志1的级别为Critical,所以日志1的级别为预设级别,因此可以将日志1确定为异常操作的日志。
其中,在本步骤中,如果确定出该日志为异常操作的日志,则执行步骤203,如果确定出该日志不是异常操作的日志,则返回步骤201继续对客户端进行实时检测。
步骤203:如果是异常操作的日志,则获取最新产生的预设大小日志。
其中,异常操作的日志仅记录发生该异常操作时的现场数据,并不记录该异常操作之前发生了哪些操作,技术人员根据该异常操作以及在该异常操作之前执行部分操作,才能分析出异常操作发生的原因,因此技术人员分析异常操作发生的原因除了需要该异常操作的日志,还需要在该异常操作的日志之前产生的日志,因此在本步骤中需要获取最新产生的预设大小日志,以上报给服务器。最新产生的预设大小日志包括该异常操作的日志和客户端在该异常操作的日志之前产生的日志。
例如,假设预设大小为512KB,其中,日志1为发生异常操作的日志,日志1的大小为2KB,在日志1之前客户端产生了600KB的日志,则获取客户端在日志1之前最新产生的大小为510KB的日志和日志1,由获取的510KB的日志和日志1组成预设大小为512KB的日志。
步骤204:获取执行该操作的模块的标识、该模块中产生异常操作的代码行、该代码行所在的代码存储文件的标识以及该代码行在该代码存储文件中的位置信息。
其中,客户端中包括多个不同的模块,每个模块用于执行不同的操作。例如,对于用于上传短视频的客户端,该客户端包括上传模块、拍摄模块、获取模块和编辑模块,上传模块用于执行“上传视频”的操作、拍摄模块用于执行“拍摄视频”的操作,获取模块用于执行“从终端本地获取视频”的操作,以及编辑模块用于执行“编辑视频”的操作。
客户端中的每个模块是技术人员通过编程语言编写出的,所以该模块对应一段程序代码,且用一个或多个代码存储文件来存储该模块对应的程序代码。客户端的某个模块在执行操作实质上是该模块对应的代码存储文件中的程序代码在终端中运行。在终端运行该代码存储文件中的程序代码时,如果该代码存储文件中的某个代码行出错,则运行到该代码行时可以导致该模块发生异常,即该模块执行的操作发生异常。
其中,代码行所在的代码存储文件的标识可以为该代码存储文件的文件名,该代码行在该代码存储文件中的位置信息可以为该代码行在该代码存储文件的行号。
例如,获取执行“拍摄视频”操作的拍摄模块的标识为MODULE_Photo,以及获取拍摄模块在执行时发生异常操作的代码行,从终端本地存储的拍摄模块对应的代码存储文件中获取该代码行所在的代码存储文件,获取该代码存储文件的标识为GinuploadStrategyByHTTP.m,在从该代码存储文件中获取该代码行的位置信息,假设该代码行为该代码存储文件中的第148行的代码,所以该代码行在该代码存储文件中的位置信息为行号148。
步骤205:客户端将该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号组成查询字符串;
其中,该查询字符串可以唯一的标识该异常操作的日志。
例如,该模块的标识为MODULE_Photo,该代码存储文件的标识为GinuploadStrategyByHTTP.m,该位置信息为第148行,客户端的版本号为2.5.1.1,则组成的查询字符串为:
“MODULE_Photo_2.5.1.1_GinuploadStrategyByHTTP.m_148”。
步骤206:向服务器发送携带该查询字符串的查询请求消息,使服务器查询自身包含的异常操作的日志数目。
其中,服务器在收到携带该查询字符串的查询请求消息,根据该查询字符串查找自身存储的数据库,该数据库用于存储查询字符串与异常操作的日志数目的对应关系,如果查找出对应的异常操作的日志数目,则向终端发送查找的异常操作的日志数目;如果没有查找出对应的异常操作的日志数目,则设置该异常操作的日志数目为0,向终端发送该异常操作的日志数目0,将该查询字符串和设置的异常操作的日志数目0的对应关系存储在数据库中。
例如,服务器中包括如表1所示的数据库,该数据库用于存储查询字符串与异常操作的日志数目的对应关系。
表1
Figure BDA0000573717480000071
终端向服务器发送查询请求消息,该查询请求消息携带如下的查询字符串“MODULE_Photo_2.5.1.1_GinuploadStrategyByHTTP.m_148”。服务器收到终端发送的该查询请求消息后,根据该查询请求消息携带的查询字符串,查找如表1所示的数据库,并查找出对应的异常操作的日志数目为3,则向终端发送查找的异常操作的日志数目3。
步骤207:接收服务器发送的异常操作的日志数目。
例如,终端接收服务器发送的异常操作的日志数目3。
步骤208:如果该日志数目小于预设阈值,则将获取的预设大小的日志组成日志文件,向服务器发送该日志文件。
例如,假设预设阈值为5,接收的异常操作的日志数目为3,该异常操作的日志数目小于预设阈值5,则将获取的预设大小的日志组成日志文件,向服务器发送该日志文件。
进一步地,在向服务器发送该日志文件之前,获取附加信息,将日志文件的文件名设置为由获取的模块的标识、代码存储文件的标识、位置信息、客户端的版本号和附加信息组成的字符串,然后再向服务器发送该日志文件。
其中,附加信息包括当前的网络情况、用户在客户端中的用户标识和当前的时间戳信息中的至少一者。例如,获取当前的网络情况为WiFi,获取用户标识为1014987519,获取当前的时间戳为2014-08-0111:56:21.339,且在步骤205中获取的查询字符串为:
“MODULE_Photo_2.5.1.1_GinuploadStrategyByHTTP.m_148”。
根据该查询字符串,当前的网络情况为WiFi,用户的标识为1014987519,当前的时间戳为2014-08-0111:56:21.339,将组成的日志文件的文件名设置为:“MODULE_Photo_2.5.1.1_GinuploadStrategyByHTTP.m_148_WIFI_1014987519_2014-08-0111:56:21.339.txt”。其中,“.txt”为日志文件的后缀名。
服务器接收终端发送的该日志文件,存储该日志文件。如此技术人员可以对存储的日志文件进行分析得到客户端发生异常的原因。另外,日志文件的文件名由查询字符串和附加信息组成,有时技术人员只需要根据日志文件的文件名就可以了解大概情况,并对客户端发生异常的原因进行分析,而不需要进一步打开日志文件,分析具体的日志内容,如此可以提高分析效率。
进一步地,服务器接收该日志文件,从该日志文件的文件名中获取查询字符串,根据获取的查询字符串,从自身存储的数据库中查找出对应的异常操作的日志数目,增加查找的异常操作的日志数目。
其中,增加该异常操作的日志数目可以为:将该异常操作的日志数目加1或2等数值。
例如,服务器接收日志文件,从日志文件的文件名中获取查询字符串为MODULE_Photo_2.5.1.1_GinuploadStrategyByHTTP.m_148,根据获取的查询字符串,从如表1所示的数据库中查找出对应的异常操作的日志数目为3,则增加查找的异常操作的日志数目,增加后的查询字符串与异常操作的日志数目的对应关系如表2所示。
表2
Figure BDA0000573717480000091
进一步地,在本发明实施例中,服务器还维护一个白名单。对于某些用户,这些用户主动地向服务器上报客户端发生的异常,服务器获取这些用户的用户标识,将这些用户的用户标识添加到白名单中。
服务器会周期性地或接收到技术人员输入的获取指令时,根据白名单中的每个用户标识,向每个用户标识对应的终端发送获取日志请求消息。对于每个终端,该终端接收到该获取日志请求消息,从本地获取最新产生的预设大小的日志,将该获取的日志组成日志文件,将该日志文件发送给服务器。
由于这些用户主动地向服务器上报客户端发生的异常,所以可以认为这些用户对客户端的忠诚度较高,技术人员需要优先保证这些用户能正常运行客户端,所以服务器可以主动地从这些用户的终端中拉取日志,以使技术人员能最快获取这些用户在运行客户端时发生异常和运行情况。
其中,在步骤203中,如果确定出是异常操作的日志,也可以先获取用于标识该异常操作的日志的查询字符串,根据该查询字符串查找服务器中包含该异常操作的日志数目,如果该日志数目小于预设阈值,则再获取客户端最新产生的预设大小日志,将获取的日志组成日志文件,向服务器上报该日志文件。如此避免了在服务器中包含的该异常操作的日志数目达到预设阈值时,终端还获取日志文件,造成不必要的操作。
在本发明实施例中,通过获取客户端执行操作时产生的日志的级别,根据该级别确定该日志是否为异常操作的日志,如果是异常操作的日志,获取客户端最新产生的预设大小的日志,进而获取执行该操作的模块的标识、该模块中产生异常操作的代码行、该代码行所在的代码存储文件的标识以及该代码行在该代码存储文件中的位置信息,将该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号组成查询字符串并向服务器发送查询请求消息,服务器查询自身数据库中包含的异常操作的日志数目并发送给终端,如果日志数目小于预设阈值,则将获取的预设大小的日志组成日志文件,并获取附加信息,将日志的文件名设置为查询字符串加附加信息组成的字符串,向服务器发送该日志文件,由于该日志文件包含异常操作的日志以及在该异常操作之前最新产生的日志,且当服务器中该异常操作的日志数目小于预设阈值时,才会发送日志文件,因而限制了同类错误的日志文件的数量,技术人员在查看日志时仅查看几个同类错误的日志即可,因而提高了调查效率,从而进一步避免浪费用户流量,以达到节省用户流量的目的。
实施例3
本发明提供了一种上报日志的装置,参见图3,该装置包括:
第一获取模块301,用于检测到客户端执行操作以及客户端产生该操作的日志时,根据该操作获取该日志的级别;
确定模块302,用于根据该级别确定该日志是否为异常操作的日志;
第二获取模块303,用于获取如果是异常操作的日志,则获取客户端最新产生的预设大小的日志;
发送模块304,用于将获取的预设大小的日志组成日志文件,向服务器发送该日志文件。
优选地,第一获取模块301包括:
第一获取单元,用于获取该操作的操作情况;
第一设置单元,如果该操作的操作情况为未发生操作异常,则将该日志的级别设置为该操作在未发生异常情况下对应的级别;
第二设置单元,如果该操作的操作情况为发生操作异常,则根据该操作和发生的异常获取对应的级别,将该日志的级别设置为获取的级别。
优选地,确定模块302包括:
判断单元,用于判断出该级别是否为预设级别;
第一确定单元,如果是,则确定该日志为异常操作的日志;
第二确定单元,如果不是,则确定该日志不是异常操作的日志。
优选地,发送模块304包括:
第二获取单元,用于获取客户端中执行该操作的模块的标识、该模块中产生异常操作的代码行、该代码行所在的代码存储文件的标识以及该代码行在该代码存储文件中的位置信息;
查询单元,用于根据该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号,查询服务器包含该异常操作的日志数目;
发送单元,如果该日志数目未达到预设阈值,则向服务器发送该日志文件。
进一步地,查询单元包括:
组成子单元,用于将该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号组成查询字符串;
查询子单元,用于向服务器发送查询请求消息,该查询请求消息携带该查询字符串,使服务器查询其包含该异常操作的日志数目;
接收子单元,用于接收服务器发送该异常操作的日志数目。
进一步地,该装置还包括:
第三获取模块,获取附加信息,该附加信息包括当前的网络情况、用户在客户端中的用户标识和当前的时间戳信息中的至少一者;
设置模块,将该日志文件的文件名设置为由该模块的标识、该代码存储文件的标识、该位置信息、客户端的版本号和该附加信息组成的字符串。
在本发明实施例中,通过获取客户端执行操作时产生的日志的级别,根据该级别确定该日志是否为异常操作的日志,如果是异常操作的日志,获取客户端最新产生的预设大小的日志,进而获取执行该操作的模块的标识、该模块中产生异常操作的代码行、该代码行所在的代码存储文件的标识以及该代码行在该代码存储文件中的位置信息,将该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号组成查询字符串并向服务器发送查询请求消息,服务器查询自身数据库中包含的异常操作的日志数目并发送给终端,如果日志数目小于预设阈值,则将获取的预设大小的日志组成日志文件,并获取附加信息,将日志的文件名设置为查询字符串加附加信息组成的字符串,向服务器发送该日志文件,由于该日志文件包含异常操作的日志以及在该异常操作之前最新产生的日志,且当服务器中该异常操作的日志数目小于预设阈值时,才会发送日志文件,因而限制了同类错误的日志文件的数量,技术人员在查看日志时仅查看几个同类错误的日志即可,因而提高了调查效率,从而进一步避免浪费用户流量,以达到节省用户流量的目的。
实施例4
参见图4,其示出了本发明实施例所涉及的具有触敏表面的终端结构示意图,该终端可以用于实施上述实施例中提供的一种上报日志的方法。具体来讲:
终端900可以包括RF(Radio Frequency,射频)电路110、包括有一个或一个以上计算机可读存储介质的存储器120、输入单元130、显示单元140、传感器150、音频电路160、WiFi(wireless fidelity,无线保真)模块170、包括有一个或者一个以上处理核心的处理器180、以及电源190等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器180处理;另外,将涉及上行的数据发送给基站。通常,RF电路110包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、LNA(Low Noise Amplifier,低噪声放大器)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于GSM(Global System of Mobile communication,全球移动通讯***)、GPRS(General Packet Radio Service,通用分组无线服务)、CDMA(CodeDivision Multiple Access,码分多址)、WCDMA(Wideband Code Division MultipleAccess,宽带码分多址)、LTE(Long Term Evolution,长期演进)、电子邮件、SMS(ShortMessaging Service,短消息服务)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端900的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器120还可以包括存储器控制器,以提供处理器180和输入单元130对存储器120的访问。
输入单元130可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元130可包括触敏表面131以及其他输入设备132。触敏表面131,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面131上或在触敏表面131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面131。除了触敏表面131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端900的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元140可包括显示面板141,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板141。进一步的,触敏表面131可覆盖显示面板141,当触敏表面131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图4中,触敏表面131与显示面板141是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面131与显示面板141集成而实现输入和输出功能。
终端900还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端900移动到耳边时,关闭显示面板141和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端900还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端900之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。音频电路160还可能包括耳塞插孔,以提供外设耳机与终端900的通信。
WiFi属于短距离无线传输技术,终端900通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图4示出了WiFi模块170,但是可以理解的是,其并不属于终端900的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端900的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器120内的软件程序和/或模块,以及调用存储在存储器120内的数据,执行终端900的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器180可包括一个或多个处理核心;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。
终端900还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理***与处理器180逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源190还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端900还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端900的显示单元是触摸屏显示器,终端900还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行述一个或者一个以上程序包含用于进行以下操作的指令:
检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;
根据所述级别确定所述日志是否为异常操作的日志;
如果是,则获取所述客户端最新产生的预设大小的日志;
将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件。
所述根据所述操作获取所述日志的级别,包括:
获取所述操作的操作情况;
如果所述操作的操作情况为未发生操作异常,则将所述日志的级别设置为所述操作在未发生异常情况下对应的级别;
如果所述操作的操作情况为发生操作异常,则根据所述操作和发生的异常获取对应的级别,将所述日志的级别设置为所述获取的级别。
所述根据所述级别确定所述日志是否为异常操作的日志,包括:
判断出所述级别是否为预设级别;
如果是,则确定所述日志为异常操作的日志;
如果不是,则确定所述日志不是异常操作的日志。
所述向服务器发送所述日志文件,包括:
获取所述客户端中执行所述操作的模块的标识、所述模块中产生异常操作的代码行、所述代码行所在的代码存储文件的标识以及所述代码行在所述代码存储文件中的位置信息;
根据所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号,查询服务器包含所述异常操作的日志数目;
如果所述日志数目未达到预设阈值,则向服务器发送所述日志文件。
所述根据所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号,查询服务器包含所述异常操作的日志数目,包括:
将所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号组成查询字符串;
向所述服务器发送查询请求消息,所述查询请求消息携带所述查询字符串,使所述服务器查询其包含所述异常操作的日志数目;
接收所述服务器发送所述异常操作的日志数目。
所述向服务器发送所述日志文件之前,还包括:
获取附加信息,所述附加信息包括当前的网络情况、用户在所述客户端中的用户标识和当前的时间戳信息中的至少一者;
将所述日志文件的文件名设置为由所述模块的标识、所述代码存储文件的标识、所述位置信息、所述客户端的版本号和所述附加信息组成的字符串。
在本发明实施例中,通过获取客户端执行操作时产生的日志的级别,根据该级别确定该日志是否为异常操作的日志,如果是异常操作的日志,获取客户端最新产生的预设大小的日志,进而获取执行该操作的模块的标识、该模块中产生异常操作的代码行、该代码行所在的代码存储文件的标识以及该代码行在该代码存储文件中的位置信息,将该模块的标识、该代码存储文件的标识、该位置信息和客户端的版本号组成查询字符串并向服务器发送查询请求消息,服务器查询自身数据库中包含的异常操作的日志数目并发送给终端,如果日志数目小于预设阈值,则将获取的预设大小的日志组成日志文件,并获取附加信息,将日志的文件名设置为查询字符串加附加信息组成的字符串,向服务器发送该日志文件,由于该日志文件包含异常操作的日志以及在该异常操作之前最新产生的日志,且当服务器中该异常操作的日志数目小于预设阈值时,才会发送日志文件,因而限制了同类错误的日志文件的数量,技术人员在查看日志时仅查看几个同类错误的日志即可,因而提高了调查效率,从而进一步避免浪费用户流量,以达到节省用户流量的目的。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (13)

1.一种上报日志的方法,其特征在于,所述方法包括:
检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;
根据所述级别确定所述日志是否为异常操作的日志;
如果是,则获取所述客户端最新产生的预设大小的日志;
所述预设大小的日志包括所述异常操作的日志以及所述异常操作之前最新产生的日志,且所述异常操作的日志与所述异常操作之前最新产生的日志的大小之和为所述预设大小;
根据查询字符串查找对应的异常操作的日志数目,如果所述异常操作的日志数目未达到预设阈值,则将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件,所述服务器接收所述日志文件后,更新所述查询字符串和所述异常操作的日志数目的对应关系,其中,所述客户端生成所述查询字符串,所述查询字符串唯一标识所述异常操作的日志,所述服务器中存储所述查询字符串和所述异常操作的日志数目的对应关系。
2.如权利要求1所述的方法,其特征在于,所述根据所述操作获取所述日志的级别,包括:
获取所述操作的操作情况;
如果所述操作的操作情况为未发生操作异常,则将所述日志的级别设置为所述操作在未发生异常情况下对应的级别;
如果所述操作的操作情况为发生操作异常,则根据所述操作和发生的异常获取对应的级别,将所述日志的级别设置为所述获取的级别。
3.如权利要求1所述的方法,其特征在于,所述根据所述级别确定所述日志是否为异常操作的日志,包括:
判断出所述级别是否为预设级别;
如果是,则确定所述日志为异常操作的日志;
如果不是,则确定所述日志不是异常操作的日志。
4.如权利要求1所述的方法,其特征在于,所述根据所述查询字符串查找对应的所述异常操作的日志数目,包括:
获取所述客户端中执行所述操作的模块的标识、所述模块中产生异常操作的代码行、所述代码行所在的代码存储文件的标识以及所述代码行在所述代码存储文件中的位置信息;
根据所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号,查询服务器包含所述异常操作的日志数目。
5.如权利要求4所述的方法,其特征在于,所述根据所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号,查询服务器包含所述异常操作的日志数目,包括:
将所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号组成查询字符串;
向所述服务器发送查询请求消息,所述查询请求消息携带所述查询字符串,使所述服务器查询其包含所述异常操作的日志数目;
接收所述服务器发送所述异常操作的日志数目。
6.如权利要求4所述的方法,其特征在于,所述向服务器发送所述日志文件之前,还包括:
获取附加信息,所述附加信息包括当前的网络情况、用户在所述客户端中的用户标识和当前的时间戳信息中的至少一者;
将所述日志文件的文件名设置为由所述模块的标识、所述代码存储文件的标识、所述位置信息、所述客户端的版本号和所述附加信息组成的字符串。
7.一种上报日志的装置,其特征在于,所述装置包括:
第一获取模块,用于检测到客户端执行操作以及所述客户端产生所述操作的日志时,根据所述操作获取所述日志的级别;
确定模块,用于根据所述级别确定所述日志是否为异常操作的日志;
第二获取模块,用于获取如果是异常操作的日志,则获取所述客户端最新产生的预设大小的日志;
所述预设大小的日志包括所述异常操作的日志以及所述异常操作之前最新产生的日志,且所述异常操作的日志与所述异常操作之前最新产生的日志的大小之和为所述预设大小;
发送模块,用于根据查询字符串查找对应的所述异常操作的日志数目,如果所述异常操作的日志数目小于预设阈值,则将所述获取的预设大小的日志组成日志文件,向服务器发送所述日志文件,所述服务器接收所述日志文件后,更新所述查询字符串和所述异常操作的日志数目的对应关系,其中,所述客户端生成所述查询字符串,所述查询字符串唯一标识所述异常操作的日志,服务器中存储所述查询字符串和异常操作的日志数目的对应关系。
8.如权利要求7所述的装置,其特征在于,所述第一获取模块包括:
第一获取单元,用于获取所述操作的操作情况;
第一设置单元,如果所述操作的操作情况为未发生操作异常,则将所述日志的级别设置为所述操作在未发生异常情况下对应的级别;
第二设置单元,如果所述操作的操作情况为发生操作异常,则根据所述操作和发生的异常获取对应的级别,将所述日志的级别设置为所述获取的级别。
9.如权利要求7所述的装置,其特征在于,所述确定模块包括:
判断单元,用于判断出所述级别是否为预设级别;
第一确定单元,如果是,则确定所述日志为异常操作的日志;
第二确定单元,如果不是,则确定所述日志不是异常操作的日志。
10.如权利要求7所述的装置,其特征在于,所述发送模块包括:
第二获取单元,用于获取所述客户端中执行所述操作的模块的标识、所述模块中产生异常操作的代码行、所述代码行所在的代码存储文件的标识以及所述代码行在所述代码存储文件中的位置信息;
查询单元,用于根据所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号,查询服务器包含所述异常操作的日志数目。
11.如权利要求10所述的装置,其特征在于,所述查询单元包括:
组成子单元,用于将所述模块的标识、所述代码存储文件的标识、所述位置信息和所述客户端的版本号组成查询字符串;
查询子单元,用于向所述服务器发送查询请求消息,所述查询请求消息携带所述查询字符串,使所述服务器查询其包含所述异常操作的日志数目;
接收子单元,用于接收所述服务器发送所述异常操作的日志数目。
12.如权利要求10所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取附加信息,所述附加信息包括当前的网络情况、用户在所述客户端中的用户标识和当前的时间戳信息中的至少一者;
设置模块,用于将所述日志文件的文件名设置为由所述模块的标识、所述代码存储文件的标识、所述位置信息、所述客户端的版本号和所述附加信息组成的字符串。
13.一种存储介质,其特征在于:存储有处理器可执行指令,所述指令由一个或一个以上处理器执行时,实现如权利要求1-6任一项所述的上报日志的方法。
CN201410484552.4A 2014-09-19 2014-09-19 一种上报日志的方法及装置 Active CN105429775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410484552.4A CN105429775B (zh) 2014-09-19 2014-09-19 一种上报日志的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410484552.4A CN105429775B (zh) 2014-09-19 2014-09-19 一种上报日志的方法及装置

Publications (2)

Publication Number Publication Date
CN105429775A CN105429775A (zh) 2016-03-23
CN105429775B true CN105429775B (zh) 2020-06-26

Family

ID=55507727

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410484552.4A Active CN105429775B (zh) 2014-09-19 2014-09-19 一种上报日志的方法及装置

Country Status (1)

Country Link
CN (1) CN105429775B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106294041A (zh) * 2016-07-22 2017-01-04 厦门美图移动科技有限公司 一种bug信息上报的方法、装置及移动终端
CN107609117B (zh) * 2017-09-13 2020-09-01 Oppo广东移动通信有限公司 日志信息上报方法、装置及存储介质、adsp和终端
CN107979851B (zh) * 2017-12-01 2021-07-30 青岛海信移动通信技术股份有限公司 异常数据上报方法及装置
CN108170586A (zh) * 2017-12-26 2018-06-15 广东欧珀移动通信有限公司 日志处理方法、装置、存储介质及终端设备
CN108762965A (zh) * 2018-05-22 2018-11-06 东旭集团有限公司 日志查找方法、***及生产设备
CN109257230A (zh) * 2018-10-26 2019-01-22 武汉精鸿电子技术有限公司 一种半导体存储器老化测试的日志管理***及方法
CN110046080A (zh) * 2018-11-26 2019-07-23 香港乐蜜有限公司 一种调取日志文件的方法、装置、电子设备及存储介质
CN109727137A (zh) * 2018-12-18 2019-05-07 杭州茂财网络技术有限公司 一种基于用户风险评测的日志上报方法及***
CN110457195B (zh) * 2019-08-05 2023-12-26 深圳乐信软件技术有限公司 客户端本地日志的获取方法、装置、服务器及存储介质
CN110704374B (zh) * 2019-08-14 2022-02-15 交控科技股份有限公司 一种轨道交通设备日志的存储和读取方法
CN112711518B (zh) * 2019-10-25 2024-04-12 腾讯科技(深圳)有限公司 一种日志上传方法和装置
CN111143185A (zh) * 2019-12-30 2020-05-12 珠海金山网络游戏科技有限公司 一种基于日志的故障分析方法及装置
CN111949551A (zh) * 2020-09-01 2020-11-17 网易(杭州)网络有限公司 应用程序测试方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211625A (zh) * 2006-12-25 2008-07-02 上海乐金广电电子有限公司 光盘***的自我诊断控制方法
CN101815010A (zh) * 2009-02-25 2010-08-25 北京启明星辰信息技术股份有限公司 一种***日志的上报方法和上报***
CN102033801A (zh) * 2009-09-28 2011-04-27 佳能株式会社 记录日志的信息处理设备及其控制方法
CN103942210A (zh) * 2013-01-21 2014-07-23 ***通信集团上海有限公司 海量日志信息的处理方法、装置与***

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8977587B2 (en) * 2013-01-03 2015-03-10 International Business Machines Corporation Sampling transactions from multi-level log file records

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101211625A (zh) * 2006-12-25 2008-07-02 上海乐金广电电子有限公司 光盘***的自我诊断控制方法
CN101815010A (zh) * 2009-02-25 2010-08-25 北京启明星辰信息技术股份有限公司 一种***日志的上报方法和上报***
CN102033801A (zh) * 2009-09-28 2011-04-27 佳能株式会社 记录日志的信息处理设备及其控制方法
CN103942210A (zh) * 2013-01-21 2014-07-23 ***通信集团上海有限公司 海量日志信息的处理方法、装置与***

Also Published As

Publication number Publication date
CN105429775A (zh) 2016-03-23

Similar Documents

Publication Publication Date Title
CN105429775B (zh) 一种上报日志的方法及装置
CN108880867B (zh) 一种网络设备数据采集方法及***
CN104518953B (zh) 删除消息的方法、即时通信终端及***
KR101978590B1 (ko) 메시지 업데이팅 방법, 장치 및 단말
WO2015039564A1 (en) Method and apparatus for data migration
CN106649126B (zh) 一种对应用程序进行测试的方法和装置
CN106302938B (zh) 通信事件处理方法和装置
CN107040610B (zh) 数据同步方法、装置、存储介质、终端以及服务器
CN108073495B (zh) 应用程序崩溃原因的定位方法及装置
CN104111927A (zh) 信息分类的方法、设备和***
CN106953898B (zh) 一种获取软件包的方法和装置
CN105610878B (zh) 目录上传方法、数据发布方法、终端及服务器
CN107122036B (zh) 中央处理器频率调节方法及装置
CN106162811B (zh) 建立网络连接的方法及装置
CN107317828B (zh) 文件下载方法及装置
CN104063400A (zh) 数据搜索方法和装置
CN112749074A (zh) 一种测试用例推荐方法以及装置
CN112711516B (zh) 一种数据处理方法和相关装置
CN114115895A (zh) 一种代码查询方法、装置、电子设备和存储介质
CN107766351B (zh) 文件目录的识别方法及装置
CN111274463B (zh) 基于im联系人分组设置的信息展示方法、装置及存储介质
CN103729283A (zh) 一种***日志输出方法、装置及终端设备
CN105159655B (zh) 行为事件的播放方法和装置
CN106933626B (zh) 应用关联方法及装置
CN106817370B (zh) 传输网络数据的方法及装置

Legal Events

Date Code Title Description
C06 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