CN105279074A - 一种通过NSLog在终端上展示日志信息的方法和装置 - Google Patents
一种通过NSLog在终端上展示日志信息的方法和装置 Download PDFInfo
- Publication number
- CN105279074A CN105279074A CN201410248184.3A CN201410248184A CN105279074A CN 105279074 A CN105279074 A CN 105279074A CN 201410248184 A CN201410248184 A CN 201410248184A CN 105279074 A CN105279074 A CN 105279074A
- Authority
- CN
- China
- Prior art keywords
- log information
- file
- nslog
- specified file
- output
- 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
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种通过NSLog在终端上展示日志信息的方法和装置,以为用户查看日志信息提供方便。所述方法包括:在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;从指定文件读取日志信息并对读取的日志信息进行组装;启动定时器以发送日志信息变更通知;当收到定时器发送的日志信息变更通知时,将组装的日志信息显示在对应于日志信息的应用程序所在终端上。本发明提供的方法一方面为用户(例如,应用程序开发人员)查看日志信息增加了一个渠道;另一方面,在用户需要在脱离开发计算机时查看日志信息的场合,为用户查看日志信息提供的很大的方便,也减小了应用程序的开发成本。
Description
技术领域
本发明涉及移动通信领域,具体涉及一种通过NSLog在终端上展示日志信息的方法和装置。
背景技术
应用程序(:APPlication,APP)的开发是一个复杂、漫长的过程,不仅如此,在产品开发完成后,需要对应用程序进行测试,以确定是否达到预期的功能。对应用程序的测试过程中通常包括一些日志信息的输出,这些日志信息能够反映当前APP相关逻辑的执行情况。
现有的一种展示日志信息的方法是通过NSLog,在集成开发环境(IntegratedDevelopmentEnvironment,IDE)上显示。NSLog是扩充C的面向对象编程语言(Objective-C)中的输出功能,其与C语言的printf相当,常用于文字输出,在控制台(console)中输出显示结果。所谓IDE,是用于程序开发环境的应用程序,一般包括代码编辑器、编译器、调试器和图形用户界面工具,即,集成了代码编写功能、分析功能、编译功能和调试(debuging)等功能于一体的开发软件套。
对于上述现有的展示日志信息的方法,其主要特点是那些日志信息在IDE上显示。一般地,IDE是安装在用于进行程序开发的开发计算机(一般是个人电脑)上,对于那些只需要在室内观察APP相关逻辑执行情况的应用程序,上述现有的展示日志信息的方法还是可行的。然而,对于那些需要脱机查看应用程序相关逻辑执行情况的场景,或者需要在户外观察APP相关逻辑运行情况的应用程序,例如,导航等应用程序,需要在真实的道路上移动使用,若仍然采用现有的展示日志信息的方法,要查看当前APP相关逻辑的执行情况,则需要带着软件开发设备(例如,安装有IDE的开发计算机)进行操作了,如此,对用户而言,非常不方便,成本也较高。
发明内容
本发明提供一种通过NSLog在终端上展示日志信息的方法和装置,以为用户查看日志信息提供方便。
本发明实施例提供一种通过NSLog在终端上展示日志信息的方法,所述方法包括:
在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;
从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装;
启动定时器以发送日志信息变更通知;
当收到所述定时器发送的日志信息变更通知时,将所述组装的日志信息显示在所述日志信息对应的应用程序所在终端上。
本发明另一实施例提供一种通过NSLog在终端上展示日志信息的装置,所述装置包括:
变更模块,用于在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;
日志信息获取模块,用于从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装;
启动模块,用于启动定时器以发送日志信息变更通知;
显示模块,用于当收到所述定时器发送的日志信息变更通知时,将所述组装的日志信息显示在所述日志信息对应的应用程序所在终端上。
从上述本发明实施例可知,日志信息从其默认输出路径变更为设置输出至指定文件,在收到定时器发送的日志信息变更通知时,将组装的日志信息显示在对应于日志信息的应用程序所在终端上。与现有技术只能在IDE上显示日志信息相比,由于本发明提供的方法可以将日志信息直接显示在对应于日志信息的应用程序所在终端上,因此,一方面,使得查看日志信息不再局限于IDE,为用户(例如,应用程序开发人员)查看日志信息增加了一个渠道;另一方面,在用户需要在脱离开发计算机时查看日志信息的场合,例如,需要在户外观察APP相关逻辑运行情况的应用程序(例如,导航等应用程序),本发明提供的方法为用户查看日志信息提供的很大的方便,也减小了应用程序的开发成本。
附图说明
图1是本发明实施例提供的通过NSLog在终端上展示日志信息的方法的基本流程示意图;
图2是本发明另一实施例提供的通过NSLog在终端上展示日志信息的方法的基本流程示意图;
图3是本发明实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图4是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图5是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图6-a是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图6-b是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图7-a是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图;
图7-b是本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置逻辑结构示意图。
具体实施方式
本发明提供一种通过NSLog在终端上展示日志信息的方法,所述方法包括:在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装;启动定时器以发送日志信息变更通知;当收到所述定时器发送的日志信息变更通知时,将所述组装的日志信息显示在对应于所述日志信息的应用程序所在终端上。本发明还提供相应的通过NSLog在终端上展示日志信息的装置。以下分别进行详细说明。
请参阅附图1,是本发明实施例提供的通过NSLog在终端上展示日志信息的方法的基本流程,主要包括步骤S101至步骤S104,详细说明如下:
S101,在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件。
在本发明实施例中,NSLog开关是设置在日志信息对应的应用程序所在终端的用户界面(UserInterface,UI)上的一个标识,触摸该标识时,可以让NSLog开关在打开与关闭之间切换。当NSLog开关被关闭时,日志信息就是从默认输出路径输出,即,从开发计算机的集成开发环境(IntegratedDevelopmentEnvironment,IDE)输出,当NSLog开关被打开时,则表明不是从开发计算机的集成开发环境IDE输出。
S102,从指定文件读取日志信息并对读取的日志信息进行组装。
指定文件是在***初始化时指定,并且,从效率上来考虑,一般是在开发计算机上指定某个文件。当然,也可以在终端上指定文件,本发明对此可不做限制。
S103,启动定时器以发送日志信息变更通知。
本发明实施例中,并非每时每刻都在终端的UI上展示日志信息,而是在定时器发送了日志信息变更通知后,终端的UI才展示日志信息。
定时器一旦启动,则会周期性地发送日志信息变更通知。当然,在发送日志信息变更通知之前,会对是否有新的日志信息产生进行判断。具体地,可以事先建立一个管道(Pipe),指向***初始化时的指定文件。然后,按照某个周期对管道进行监测。若发现管道有数据,则表明有新的日志信息产生,于是发送日志信息变更通知;若管道为空即没有发现数据,则表明没有新的日志信息产生,不发送日志信息变更通知。需要说明的是,每次日志信息读取完毕,则管道就被清空。
S104,当收到定时器发送的日志信息变更通知时,将组装的日志信息显示在日志信息对应的应用程序所在终端上。
需要说明的是,在本发明实施例中,日志信息对应的应用程序是指在被测试时产生该日志信息的应用程序,一个应用程序被测试时,就产生相应的日志信息;日志信息总是与某个被测试应用程序对应。还需要说明的是,本发明实施例提及的“终端”,是指安装了被测应用程序、并在将来要运行被测应用程序和实现应用程序功能的设备,例如,智能手机、导航仪等,其有别于安装了IDE、承担开发功能的开发计算机。
从上述本发明实施例提供的通过NSLog在终端上展示日志信息的方法可知,日志信息从其默认输出路径变更为设置输出至指定文件,在收到定时器发送的日志信息变更通知时,将组装的日志信息显示在对应于日志信息的应用程序所在终端上。与现有技术只能在IDE上显示日志信息相比,由于本发明提供的方法可以将日志信息直接显示在对应于日志信息的应用程序所在终端上,因此,一方面,使得查看日志信息不再局限于IDE,为用户(例如,应用程序开发人员)查看日志信息增加了一个渠道;另一方面,在用户需要在脱离开发计算机时查看日志信息的场合,例如,需要在户外观察APP相关逻辑运行情况的应用程序(例如,导航等应用程序),本发明提供的方法为用户查看日志信息提供的很大的方便,也减小了应用程序的开发成本。
请参阅附图2,是本发明另一实施例提供的通过NSLog在终端上展示日志信息的方法的基本流程。在本实施例中,日志信息的默认输出路径为日志信息的标准输出文件所对应的输出设备。例如,对于操作***为iOS的智能设备,日志信息的默认输出路径为标准输出文件stderr对应的输出设备,即,iOS智能设备的屏幕。附图2示例的通过NSLog在终端上展示日志信息的方法主要包括步骤S201至步骤S205,详细说明如下:
S201,在NSLog开关被设置为打开状态后,通过输出重定向,将标准输出文件的输出保存为指定文件。
如前所述,标准输出文件,例如,stderr的输出设备是开发计算机的屏幕,其输出是日志信息。在本实施例中,可以通过输出重定向,将标准输出文件的输出保存为指定文件。作为本发明一个实施例,输出重定向的一般形式为:命令>文件名。例如,假设命令为标准输出文件即stderr,指定文件是文件名为directory.out的文件,则通过输出重定向,将标准输出文件的输出保存为指定文件可以是如下:
$stderr>directory.out
从而,将命令stderr的输出保存为一个名为directory.out的文件。
需要说明的是,若重定向符号“>”后边的文件已存在,那么这个文件将被重写。
为了避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,本实施例还提供了输出重定向的另一种方法,即,输出追加重定向。所谓输出追加重定向,其与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是将命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。如果要将一条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作符>>,形式为:命令>>文件名。例如,假设命令为标准输出文件即stderr,指定文件是文件名为directory.out的文件,则作为本发明另一实施例,通过输出重定向,将标准输出文件的输出保存为指定文件可以是如下:
$stderr*.doc>>directory.out
文件directory.out的原有内容不被破坏,stderr的输出内容直接追加到文件directory.out的最后。
S202,为指定文件建立文件句柄,建立的文件句柄指向指定文件。
在文件输入/输出(Input/Output,I/O)***中,要从一个文件读取数据,应用程序首先要调用操作***函数并传送文件名,并选一个到该文件的路径来打开文件,操作***函数取回一个顺序号,该顺序号即文件句柄(filehandle),文件句柄对于打开的文件是唯一的识别依据,简言之,一个句柄就是给一个文件、设备套接字(socket)或管道所取的一个名字,以便帮助记住正处理的名字,并隐藏某些缓存等的复杂性。
S203,从指定文件读取日志信息并对读取的日志信息进行组装。
作为本发明一个实施例,从指定文件读取日志信息并对读取的日志信息进行组装可以是:根据步骤S202建立的文件句柄,以后台读取的方式从指定文件读取日志信息,在检测到事件通知时,按行组装读取的日志信息。需要说明的是,之所以以后台读取的方式读取文件,是为了降低日志信息的读取级别,从而保证应用其他高级别的事件优先处理。而按行组装读取的日志信息,一方面是考虑到日志信息本身是逐行逐行输出的,另一方面是考虑到若用户打印日志过多,按行处理便于分析。
S204,启动定时器以发送日志信息变更通知。
与前述实施例类似,本发明实施例中,定时器一旦启动,则会周期性地发送日志信息变更通知。当然,在发送日志信息变更通知之前,会对是否有新的日志信息产生进行判断。具体地,可以事先建立一个管道(Pipe),指向***初始化时的指定文件。然后,按照某个周期对管道进行监测。若发现管道有数据,则表明有新的日志信息产生,于是发送日志信息变更通知;若管道为空即没有发现数据,则表明没有新的日志信息产生,不发送日志信息变更通知。需要说明的是,每次日志信息读取完毕,则管道就被清空。
S205,当收到定时器发送的日志信息变更通知时,将组装的日志信息显示在日志信息对应的应用程序所在终端上。
在本实施例中,日志信息对应的应用程序是指在被测试时产生该日志信息的应用程序,一个应用程序被测试时,就产生相应的日志信息;日志信息总是与某个被测试应用程序对应。还需要说明的是,本实施例提及的“终端”,是指安装了被测应用程序、并在将来要运行被测应用程序和实现应用程序功能的设备,例如,智能手机、导航仪等,其有别于安装了IDE、承担开发功能的开发计算机。
由于考虑到后续还要在IDE查看日志信息,或者,其他用户还要在IDE查看日志信息,在上述附图1或附图2示例的将日志信息的默认输出路径变更为设置输出至指定文件或者通过输出重定向,将标准输出文件的输出保存为指定文件之前,还可以进一步包括:保存标准输出文件的文件句柄,以便将来恢复标准输出文件的文件句柄,从而从IDE也能查看日志信息。
在本发明另一实施例中,可以在将组装的日志信息显示在对应于日志信息的应用程序所在终端上之后,还包括:关闭步骤S202中为指定文件建立的文件句柄,恢复标准输出文件的文件句柄。
以下对用于执行上述通过NSLog在终端上展示日志信息的方法的本发明实施例的通过NSLog在终端上展示日志信息的装置进行说明,其基本逻辑结构参考图3。为了便于说明,仅仅示出了与本发明实施例相关的部分。附图3示例的通过NSLog在终端上展示日志信息的装置主要包括变更模块301、日志信息获取模块302、启动模块303和显示模块304,各模块详细说明如下:
变更模块301,用于在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件。
在本实施例中,NSLog开关是设置在日志信息对应的应用程序所在终端的用户界面(UserInterface,UI)上的一个标识,触摸该标识时,可以让NSLog开关在打开与关闭之间切换。当NSLog开关被关闭时,日志信息就是从默认输出路径输出,即,从开发计算机的集成开发环境(IntegratedDevelopmentEnvironment,IDE)输出,当NSLog开关被打开时,则表明不是从开发计算机的集成开发环境IDE输出。
日志信息获取模块302,用于从指定文件读取日志信息并对所述读取的日志信息进行组装。
指定文件是在***初始化时指定,并且,从效率上来考虑,一般是在开发计算机上指定某个文件。当然,也可以在终端上指定文件,本实施例对此可不做限制。
启动模块303,用于启动定时器以发送日志信息变更通知。
本实施例中,并非每时每刻都在终端的UI上展示日志信息,而是在定时器发送了日志信息变更通知后,终端的UI才展示日志信息。
定时器一旦启动,则会周期性地发送日志信息变更通知。当然,在发送日志信息变更通知之前,会对是否有新的日志信息产生进行判断。具体地,可以事先建立一个管道(Pipe),指向***初始化时的指定文件。然后,按照某个周期对管道进行监测。若发现管道有数据,则表明有新的日志信息产生,于是发送日志信息变更通知;若管道为空即没有发现数据,则表明没有新的日志信息产生,不发送日志信息变更通知。需要说明的是,每次日志信息读取完毕,则管道就被清空。
显示模块304,用于当收到定时器发送的日志信息变更通知时,将所述组装的日志信息显示在日志信息对应的应用程序所在终端上。
需要说明的是,在本实施例中,日志信息对应的应用程序是指在被测试时产生该日志信息的应用程序,一个应用程序被测试时,就产生相应的日志信息;日志信息总是与某个被测试应用程序对应。还需要说明的是,本实施例提及的“终端”,是指安装了被测应用程序、并在将来要运行被测应用程序和实现应用程序功能的设备,例如,智能手机、导航仪等,其有别于安装了IDE、承担开发功能的开发计算机。
需要说明的是,以上附图3示例的通过NSLog在终端上展示日志信息的装置的实施方式中,各功能模块的划分仅是举例说明,实际应用中可以根据需要,例如相应硬件的配置要求或者软件的实现的便利考虑,而将上述功能分配由不同的功能模块完成,即将所述通过NSLog在终端上展示日志信息的装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。而且,实际应用中,本实施例中的相应的功能模块可以是由相应的硬件实现,也可以由相应的硬件执行相应的软件完成,例如,前述的变更模块,可以是具有执行前述在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件的硬件,例如变更器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备;再如前述的启动模块,可以是启动定时器以发送日志信息变更通知功能的硬件,例如启动器,也可以是能够执行相应计算机程序从而完成前述功能的一般处理器或者其他硬件设备(本说明书提供的各个实施例都可应用上述描述原则)。
在附图3示例的通过NSLog在终端上展示日志信息的装置中,日志信息的默认输出路径为所述日志信息的标准输出文件所对应的输出设备。
附图3示例的变更模块301可以包括第一保存单元401和创建单元402,如附图4所示本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置,其中:
第一保存单元401,用于通过输出重定向,将标准输出文件的输出保存为指定文件。
如前所述,标准输出文件,例如,stderr的输出设备是开发计算机的屏幕,其输出是日志信息。在本实施例中,第一保存单元401可以通过输出重定向,将标准输出文件的输出保存为指定文件。作为本发明一个实施例,输出重定向的一般形式为:命令>文件名。例如,假设命令为标准输出文件即stderr,指定文件是文件名为directory.out的文件,则第一保存单元401通过输出重定向,将标准输出文件的输出保存为指定文件可以是如下:
$stderr>directory.out
从而,将命令stderr的输出保存为一个名为directory.out的文件。
需要说明的是,若重定向符号“>”后边的文件已存在,那么这个文件将被重写。
为了避免输出重定向中指定文件只能存放当前命令的输出重定向的内容,本实施例还提供了输出重定向的另一种方法,即,输出追加重定向。所谓输出追加重定向,其与输出重定向的功能非常相似,区别仅在于输出追加重定向的功能是将命令(或可执行程序)的输出结果追加到指定文件的最后,而该文件原有内容不被破坏。如果要将一条命令的输出结果追加到指定文件的后面,可以使用追加重定向操作符>>,形式为:命令>>文件名。例如,假设命令为标准输出文件即stderr,指定文件是文件名为directory.out的文件,则作为本发明另一实施例,第一保存单元401通过输出重定向,将标准输出文件的输出保存为指定文件可以是如下:
$stderr*.doc>>directory.out
文件directory.out的原有内容不被破坏,stderr的输出内容直接追加到文件directory.out的最后。
创建单元402,用于为指定文件建立文件句柄,所述建立的文件句柄指向所述指定文件。
在文件输入/输出(Input/Output,I/O)***中,要从一个文件读取数据,应用程序首先要调用操作***函数并传送文件名,并选一个到该文件的路径来打开文件,操作***函数取回一个顺序号,该顺序号即文件句柄(filehandle),文件句柄对于打开的文件是唯一的识别依据,简言之,一个句柄就是给一个文件、设备套接字(socket)或管道所取的一个名字,以便帮助记住正处理的名字,并隐藏某些缓存等的复杂性。
附图4示例的日志信息获取模块302可以包括读取单元501和信息组装单元502,如附图5所示本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置,其中:
读取单元501,用于根据建立的文件句柄,以后台读取的方式从指定文件读取所述日志信息。
信息组装单元502,用于在检测到事件通知时,按行组装读取的日志信息。
需要说明的是,在附图5示例的通过NSLog在终端上展示日志信息的装置中,读取单元501之所以以后台读取的方式读取文件,是为了降低日志信息的读取级别,从而保证应用其他高级别的事件优先处理,而信息组装单元502按行组装读取的日志信息,一方面是考虑到日志信息本身是逐行逐行输出的,另一方面是考虑到若用户打印日志过多,按行处理便于分析。
附图4或附图5示例的通过NSLog在终端上展示日志信息的装置还可以包括第二保存单元601,如附图6-a或附图6-b所示本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置。第二保存单元601用于变更模块301将日志信息的默认输出路径变更为设置输出至指定文件之前,保存标准输出文件的文件句柄。第二保存单元601保存标准输出文件的文件句柄,主要是考虑到后续还要在IDE查看日志信息,或者,其他用户还要在IDE查看日志信息。
附图6-a或附图6-b示例的通过NSLog在终端上展示日志信息的装置还可以包括关闭单元701和恢复单元702,如附图7-a或附图7-b所示本发明另一实施例提供的通过NSLog在终端上展示日志信息的装置,其中:
关闭单元701,用于显示模块304将组装的日志信息显示在所述日志信息对应的应用程序所在终端上之后,关闭创建单元402建立的文件句柄;
恢复单元702,用于显示模块304将组装的日志信息显示在日志信息对应的应用程序所在终端上之后,或者关闭单元701关闭创建单元402建立的文件句柄之后,恢复标准输出文件的文件句柄。恢复单元702恢复标准输出文件的文件句柄后,后续可以在IDE查看日志信息,或者,其他用户可以在IDE查看日志信息。
需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,ReadOnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁盘或光盘等。
以上对本发明实施例所提供的通过NSLog在终端上展示日志信息的方法和装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种通过NSLog在终端上展示日志信息的方法,其特征在于,所述方法包括:
在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;
从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装;
启动定时器以发送日志信息变更通知;
当收到所述定时器发送的日志信息变更通知时,将所述组装的日志信息显示在所述日志信息对应的应用程序所在终端上。
2.根据权利要求1所述的方法,其特征在于,所述日志信息的默认输出路径为所述日志信息的标准输出文件所对应的输出设备。
3.根据权利要求2所述的方法,其特征在于,所述将日志信息的默认输出路径变更为设置输出至指定文件,包括:
通过输出重定向,将所述标准输出文件的输出保存为指定文件;
为所述指定文件建立文件句柄,所述建立的文件句柄指向所述指定文件。
4.根据权利要求3所述的方法,其特征在于,所述从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装,包括:
根据所述建立的文件句柄,以后台读取的方式从所述指定文件读取所述日志信息;
在检测到事件通知时,按行组装所述读取的日志信息。
5.根据权利要求3或4任意一项所述的方法,其特征在于,所述将日志信息的默认输出路径变更为设置输出至指定文件之前还包括:
保存所述标准输出文件的文件句柄。
6.根据权利要求5所述的方法,所述将所述组装的日志信息显示在所述日志信息对应的应用程序所在终端上之后,还包括:
关闭所述建立的文件句柄;
恢复所述标准输出文件的文件句柄。
7.一种通过NSLog在终端上展示日志信息的装置,其特征在于,所述装置包括:
变更模块,用于在NSLog开关被设置为打开状态后,将日志信息的默认输出路径变更为设置输出至指定文件;
日志信息获取模块,用于从所述指定文件读取所述日志信息并对所述读取的日志信息进行组装;
启动模块,用于启动定时器以发送日志信息变更通知;
显示模块,用于当收到所述定时器发送的日志信息变更通知时,将所述组装的日志信息显示在所述日志信息对应的应用程序所在终端上。
8.根据权利要求7所述的装置,其特征在于,所述日志信息的默认输出路径为所述日志信息的标准输出文件所对应的输出设备。
9.根据权利要求8所述的装置,其特征在于,所述变更模块包括:
第一保存单元,用于通过输出重定向,将所述标准输出文件的输出保存为指定文件;
创建单元,用于为所述指定文件建立文件句柄,所述建立的文件句柄指向所述指定文件。
10.根据权利要求9所述的装置,其特征在于,所述日志信息获取模块包括:
读取单元,用于根据所述建立的文件句柄,以后台读取的方式从所述指定文件读取所述日志信息;
信息组装单元,用于在检测到事件通知时,按行组装所述读取的日志信息。
11.根据权利要求9或10任意一项所述的装置,其特征在于,所述装置还包括:
第二保存单元,用于所述变更模块将日志信息的默认输出路径变更为设置输出至指定文件之前,保存所述标准输出文件的文件句柄。
12.根据权利要求11所述的装置,所述装置还包括:
关闭单元,用于所述显示模块将组装的日志信息显示在所述日志信息对应的应用程序所在终端上之后,关闭所述建立的文件句柄;
恢复单元,用于所述显示模块将组装的日志信息显示在所述日志信息对应的应用程序所在终端上之后,或者所述关闭单元关闭所述建立的文件句柄之后,恢复所述标准输出文件的文件句柄。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410248184.3A CN105279074A (zh) | 2014-06-05 | 2014-06-05 | 一种通过NSLog在终端上展示日志信息的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410248184.3A CN105279074A (zh) | 2014-06-05 | 2014-06-05 | 一种通过NSLog在终端上展示日志信息的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105279074A true CN105279074A (zh) | 2016-01-27 |
Family
ID=55148120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410248184.3A Pending CN105279074A (zh) | 2014-06-05 | 2014-06-05 | 一种通过NSLog在终端上展示日志信息的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105279074A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096034A (zh) * | 2016-06-27 | 2016-11-09 | 乐视控股(北京)有限公司 | 应用程序日志管理方法及装置 |
CN109426496A (zh) * | 2017-08-31 | 2019-03-05 | 武汉斗鱼网络科技有限公司 | 程序日志写入文件的方法、存储介质、电子设备及*** |
CN111611213A (zh) * | 2020-05-29 | 2020-09-01 | 广州酷狗计算机科技有限公司 | 日志获取方法及装置、计算机存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967499A (zh) * | 2006-04-24 | 2007-05-23 | 华为技术有限公司 | 日志信息输出***及输出方法 |
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
US8422682B2 (en) * | 2006-07-14 | 2013-04-16 | Kinamik Data Integrity, S.L. | Method and system of generating immutable audit logs |
CN103123601A (zh) * | 2011-11-17 | 2013-05-29 | 北京神州泰岳软件股份有限公司 | 基于Symbian***的软件开发故障查找的方法和装置 |
-
2014
- 2014-06-05 CN CN201410248184.3A patent/CN105279074A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1967499A (zh) * | 2006-04-24 | 2007-05-23 | 华为技术有限公司 | 日志信息输出***及输出方法 |
US8422682B2 (en) * | 2006-07-14 | 2013-04-16 | Kinamik Data Integrity, S.L. | Method and system of generating immutable audit logs |
CN101216800A (zh) * | 2008-01-02 | 2008-07-09 | 中兴通讯股份有限公司 | 一种linux日志的管理装置及方法 |
CN103123601A (zh) * | 2011-11-17 | 2013-05-29 | 北京神州泰岳软件股份有限公司 | 基于Symbian***的软件开发故障查找的方法和装置 |
Non-Patent Citations (1)
Title |
---|
LIZAOCHENGWEN: "转:iOS IO 重定向(NSLog to UITextView)", 《LIZAOCHENGWEN.ITEYE.COM/BLOG/1476080》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106096034A (zh) * | 2016-06-27 | 2016-11-09 | 乐视控股(北京)有限公司 | 应用程序日志管理方法及装置 |
CN109426496A (zh) * | 2017-08-31 | 2019-03-05 | 武汉斗鱼网络科技有限公司 | 程序日志写入文件的方法、存储介质、电子设备及*** |
CN109426496B (zh) * | 2017-08-31 | 2021-11-26 | 武汉斗鱼网络科技有限公司 | 程序日志写入文件的方法、存储介质、电子设备及*** |
CN111611213A (zh) * | 2020-05-29 | 2020-09-01 | 广州酷狗计算机科技有限公司 | 日志获取方法及装置、计算机存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105511911B (zh) | ***固件升级包的生成方法及装置 | |
CN104572043B (zh) | 一种对客户端应用的控件进行实时埋点的方法及装置 | |
CN102289378B (zh) | 自动生成应用程序的方法 | |
CN104461898A (zh) | 应用测试的方法、中控服务器、测试终端及*** | |
CN105094783A (zh) | 安卓应用稳定性测试的方法及装置 | |
CN104899016B (zh) | 调用堆栈关系获取方法及装置 | |
CN104407980A (zh) | 移动应用自动化测试装置和方法 | |
CN104885055A (zh) | 一种应用数据同步的方法及装置 | |
CN111090433A (zh) | 一种数据处理的方法、装置和存储介质 | |
CN105847088A (zh) | 一种基于云服务的虚拟机性能测试*** | |
CN105912473A (zh) | 基于bdd的移动app自动测试平台和测试方法 | |
CN107015841B (zh) | 一种程序编译的预处理方法及程序编译设备 | |
CN107370804B (zh) | 软件应用处理方法和装置 | |
CN103577309A (zh) | 自动化测试的方法及装置 | |
CN106844181A (zh) | 用于记录用户行为的方法、***及移动终端 | |
Akour et al. | Mobile software testing: Thoughts, strategies, challenges, and experimental study | |
CN107368420A (zh) | Api测试方法、装置及电子设备 | |
CN106648685A (zh) | 智能终端***应用的处理方法、装置及智能终端 | |
CN104375933A (zh) | 一种单元测试方法和装置 | |
KR20080052341A (ko) | 내장형 시스템 소프트웨어 자동 테스트 시스템 및 방법과테스트 시나리오 작성 방법 | |
CN102546797A (zh) | 一种基于浏览器端/服务器端结构的移动设备截屏方法 | |
CN113268243A (zh) | 内存预测方法及装置、存储介质、电子设备 | |
CN104850498A (zh) | 一种填充信息测试方法及*** | |
CN105279074A (zh) | 一种通过NSLog在终端上展示日志信息的方法和装置 | |
CN105117339B (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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160127 |
|
RJ01 | Rejection of invention patent application after publication |