本发明实施例涉及日志显示技术领域,尤其涉及一种在客户端显示日志的方法、装置、设备及存储介质。
背景技术:
随着互联网技术的飞速发展,应用程序也变得丰富多彩,各种类型的游戏应用层出不穷。
游戏日志是记录游戏运行过程各个变量的状态变化,广泛应用于游戏开发的逻辑验证以及游戏调试,对于游戏的开发和维护是至关重要的。
然而,现有的游戏日志大多仅可以通过将运行游戏的客户端,如智能手机、平板等,与专业电脑进行有线或无线连接,并将客户端的游戏运行日志荣光专业电脑进行显示。日志显示方法不够便捷,且成本较高。
技术实现要素:
本发明提供了一种在客户端显示日志的方法、装置、设备及存储介质,实现了在客户端一侧自动显示日志,以便于开发人员通过该客户端显示的日志进行调试。
第一方面,本发明实施例提供了一种在客户端显示日志的方法,该方法包括:
经由监听模块监测是否接收到显示日志指令;
若是,则经由日志显示接口根据所述显示日志指令将待显示日志保存至客户端的设定存储区域;
经由日志显示模块从所述设定存储区域获取所述待显示日志并进行显示。
第二方面,本发明实施例还提供了一种在客户端显示日志的装置,该装置包括:监听模块、日志显示接口和日志显示模块,其中,
所述监听模块用于监测是否接收到显示日志指令;
所述日志显示接口用于当接收到显示日志指令时,根据所述显示日志指令将待显示日志保存至客户端的设定存储区域;
所述日志显示模块用于从所述设定存储区域获取所述待显示日志并进行显示。
第三方面,本发明实施例还提供了一种在客户端显示日志的设备,该设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的在客户端显示日志的方法。
第四方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行本发明任意实施例提供的在客户端显示日志的方法。
本发明实施例的技术方案,通过在客户端设置监听模块,以实时监测显示日志指令,并根据该指令通过客户端的日志显示接口将运行日志保存至设定存储区域,并经由监听模块获取保存的日志进行显示,实现了在客户端显示应用运行日志的方法,便于开发人员在客户端实时查看客户端相关应用的运行日志,以进行应用的开发和维护。
附图说明
图1是本发明实施例一中的一种在客户端显示日志的方法的流程图;
图2是本发明实施例二中的一种在客户端显示日志的方法的流程图;
图3是本发明实施例三中的一种在客户端显示日志的装置的结构示意图;
图4是本发明实施例四中的一种在客户端显示日志的设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
实施例一
图1是本发明实施例一提供的一种在客户端显示日志的方法的流程图,本实施例可适用于在客户端显示应用运行日志的情况,该方法可以由在客户端显示日志的装置来执行,如图1所示,该方法具体包括如下步骤:
步骤110、经由监听模块监测是否接收到显示日志指令。
其中,监听模块为设置于客户终端的一个模块,主要用于监测显示日志指令。显示日志指令是用于指示显示日志的控制命令,如可以是showlog、log或者其他控制指令。进一步地,显示日志指令可以是gm(gamemaster,修改大师)指令。显示日志指令还可以包括日志显示的格式、范围、顺序等内容。
具体的,监听模块也可以称为监听者或者监听器(loglistener),用于监测接收显示日志指令的事件是否被触发,即是否需要显示或者输出客户端的应用程序的日志(log)。
进一步地,本发明任意实施例所涉及的客户端的应用程序为基于unity引擎进行开发的应用程序。其中,unity引擎是一种游戏开发引擎,广泛应用于3d游戏的设计与开发。
可选的,所述待显示日志为游戏应用的运行日志。该游戏应用可以是任意一种游戏应用,如战斗类游戏应用、竞赛类游戏应用、经营类游戏应用、益智类游戏应用等。
步骤120、若接收到显示日志指令,则经由日志显示接口根据所述显示日志指令将待显示日志保存至客户端的设定存储区域。
其中,日志显示接口是一种应用程序接口(applicationprogramminginterface,api),设置于客户端,以根据日志显示指令将客户端的应用程序的运行日志保存或输出至设定存储区域。设定存储区域可以是客户端的内存中的任意区域。待显示日志可以是客户端正在运行或者运行过的应用程序的日志。
可选的,经由日志显示接口根据所述显示日志指令将待显示日志保存至客户端的设定存储区域,包括:经由日志显示接口调用unity控制台的日志输出接口,将待显示日志保存至客户端的设定存储区域。
其中,unity控制台(console)可以显示应用程序的运行调试以及日志信息,而控制台的日志输出接口则是用来获取客户端应用程序的日志或运行日志的接口。通过调用原unity引擎控制台的日志输出接口实现了在客户端本地获取其应用程序的运行日志的方法。
可选的,所述日志输出接口包括debug.log接口、debug.logwarning接口和debug.logerror接口。
其中,unity引擎中的debug类用来输出应用程序的日志信息,debug.log接口或debug.log即为将应用程序的日志输出至unity引擎的控制台,debug.logwarning接口或debug.logwarning,用于将警告消息输出至控制台,debug.logerror接口或debug.logerror,用于将错误消息输出至控制台。
具体的,debug.log接口可以描述为unityengine.debug.log(stringmsg),debug.logwarning可以描述为unityengine.debug.logwarning(stringmsg),而debug.logerror可以描述为unityengine.debug.logerror(stringmsg)。其中,参数string表示用于显示的字符串,或要转换为字符串的其他形式的需要现实的内容;参数msg即message(消息),表示一个可以映射到消息的对象。
当然日志输出接口还可以包括debug.logassertion接口,用于将assertion(断言)消息输出至控制台;还可以包括各个接口的格式化接口,即按照设定格式将上述日志、警告消息和错误消息等输出至控制台。
具体的,该日志显示接口通过将unity引擎的原有的输出日志相关的各个接口进行封装,具体封装方式为,在原有的各个接口对应的类,如debug.log、debug.logerror和debug.logwarning,添加接收日志显示指令事件相关的参数,从而实现,当监听模块监测到日志显示指令时,通过该日志显示接口将客户端本地的日志保存至客户端的内存。
步骤130、经由日志显示模块从所述设定存储区域获取所述待显示日志并进行显示。
其中,日志显示模块设置于客户终端,用于当接收到显示日志指令之后,生成一个用来显示该待显示日志的界面。显示界面即用来显示待显示日志的界面,可以是客户端的屏幕的设定区域,如距离客户端的屏幕各个边缘设定距离的矩形区域,客户端的屏幕的左下角或者右下角。
具体的,可以经由日志显示模块预先设计用于显示日志(待显示日志)的用户界面(userinterface,ui),并按照设定规则或顺序将设定存储区域的待显示日志显示于该客户端的屏幕中。
进一步地,日志显示模块可以采用列举访问的形式逐步获取和显示所述待显示日志,也可以采用按照优先级顺序进行访问、查找访问或者按照类别进行访问。当然也可采用其他形式访问设定存储区域存储的待显示日志。
通常基于unity引擎开发的游戏应用程序,在显示游戏日志时,需要将客户端连接至设定电脑,运行专门的调试软件,如xcode、adb调试工具等,通过控制台才能查看游戏日志,过程繁琐,调试效率低。或者可以通过网络连接,将客户端的日志上报至设定服务器,通过部署额外的服务器进行日志显示,将会增加日志显示的成本,同时便捷程度也较低。本发明实施例的技术方案,则通过设置监听模块和日志显示接口,实现了在客户端本地进行游戏日志的显示,提高了游戏日志的实时性、便捷性,同时降低了显示日志的成本。
本发明实施例的技术方案,通过在客户端设置监听模块,以实时监测显示日志指令,并根据该指令通过客户端的日志显示接口将运行日志保存至设定存储区域,并经由日志显示模块获取保存的日志进行显示,实现了在客户端显示应用运行日志的方法,便于开发人员在客户端实时查看客户端相关应用的运行日志,以进行应用的开发和维护。
实施例二
图2为本发明实施例二提供的一种在客户端显示日志的方法的流程图,本实施例是对上一实施例的进一步细化,如图2所示,该在客户端显示日志的方法包括如下步骤:
步骤210、判断监听模块是否被触发。
具体的,判断监听模块或监听器是否被触发可以通过对应的标志位的状态进行判断。如标志位的状态为1则表示监听模块被触发,当然也可以是其他数值或者字符串等。通常,当客户端的应用程序正常运行或处于开发、测试阶段时,该监听模块可以保持为开启状态,即被触发状态。
步骤220、若监听模块被触发,则经由监听模块监测是否接收到显示日志指令。
步骤230、若接收到显示日志指令,则经由日志显示接口根据所述显示日志指令,调用unity控制台的日志输出接口,将待显示日志保存至客户端的设定存储区域。
可选的,所述日志显示接口的生成过程为:
对所述unity控制台的日志输出接口进行封装,并在封装时对各个日志输出接口加入显示日志指令对应的日志监听参数,将封装后的所述日志输出接口作为日志显示接口。
其中,日志监听参数是与显示日志指令相关的参数,用于表征监听模块是否被触发以及是否接收到的显示日志指令。日志监听参数还可以用于表征显示日志指令的类型。
可选的,日志监听参数可以包括监听模块状态参数和日志指令参数,其中,所述监听模块状态参数用于表示监听模块是否被触发,所述日志指令参数用于接收所述日志显示指令。
具体的,监听模块状态参数的类型可以是整型数值(int),包括两种取值,可以是1和0,以表示监听模块是否被触发或监听模块的状态是否为开启,即表示监听模块的状态是开启还是关闭。日志指令参数的类型可以是字符串,用于接收日志显示指令,以及用于表示所接收到的显示日志指令的类型,通过日志指令参数可以判断出是否接收到显示日志指令以及该显示日志指令所包含的日志显示类型。其中,日志显示类型包括默认类型、按分组显示类型、查找类型等,其中,默认类型为逐条显示该应用程序的全部日志,按分组显示类型为将各个待显示的日志按其分组进行显示,查找类型则为接收用户输入的字符串,根据该字符串查找相应的日志。
通过上述日志监听参数便可以形成该客户端日志的监听模块,通过日志监听参数的监听模块状态参数可以判断监听模块是否被触发,而通过日志监听参数的日志指令参数可以判断是否接收到日志显示指令以及日志显示指令的类型。而日志显示接口则通过日志监听参数调用unity控制台的日志输出接口,以实现日志的获取。
假设unity控制台的日志输出接口为unityengine.debug.log(stringmsg),unityengine.debug.logwarning(stringmsg),unityengine.debug.logerror(stringmsg),其中,unityengine表示该接口为unity引擎的原有接口。相应的,封装后的日志显示接口的各个接口分别为:superdebug.log(inttype,stringmsg),superdebug.logwarning(inttype,stringmsg),superdebug.logerror(inttype,stringmsg),其中,superdebug表示该接口属于设置于客户端的日志显示接口,int即为上述示日志指令状态参数,type即为上述显示日志指令类参数。
当监听器监测到显示日志指令时,通过设置参数int和type,实现了接收显示日志事件,并经由客户端的日志显示接口根据这两个参数的值调用unity的原有接口,实现了将客户端应用程序的日志输出至设定存储区域。
步骤240、经由日志显示模块生成所述待显示日志的显示界面。
具体的,日志显示模块还可以用于设计日志的显示格式或者形式。示例性的,日志显示模块可以设定待显示日志的各个消息的显示格式为左对齐,浮于游戏运行界面的上方,半透明,显示形式为按照设定频率进行滚动显示。当然,还可以采用其他方式进行日志显示,本发明实施例对此不进行限定。
本步骤可以发生在步骤220之后,步骤260之前的任意位置,其触发条件可以是监听模块监测到显示日志指令,或者监测到设定存储区域保存有待显示日志,还可以是监听模块从设定存储区域获取待显示日志。
步骤250、经由日志显示模块从所述设定存储区域获取所述待显示日志。
步骤260、经由日志显示模块将所述待显示日志显示于所述显示界面。
进一步地,所述日志显示模块还包括日志操作单元和显示关闭单元,其中,日志操作单元用于当待显示日志显示与所述待显示界面后,接收用户的日志操作,如删除操作、修改操作和查询操作等,并根据所述日志操作进行待显示日志的处理;显示关闭单元,用于关闭所述显示界面。具体的,该显示关闭单元可以是关闭按钮,还可以包括最小化按钮和最大化按钮等。
本发明实施例的技术方案,通过将unity原有的日志输出接口,debug.log、debug.logwarning和debug.logerror等,进行封装,并在封装时加入日志监听参数,以实现当监听模块监测到日志显示指令时,通过日志输出接口的日志监听参数触发unity的日志输出接口获取客户端应用程序的日志,并将其输出至内存中,同时设置日志显示模块,以生成待显示日志的显示界面,并通过访问内存中的日志实现于客户端显示日志的技术方案。本发明实施例的技术方案,通过在封装unity的日志输出接口时加入日志监听参数,形成了监听模块,即一个日志相关的观察者,当在客户端接收到显示日志指令时,通过该监听模块和日志显示接口即可实现客户端本地日志的输出,再通过日志显示模块实现日志的显示。本发明实施例的技术方案实现了在客户端本地显示应用程序的技术方案,提高了应用程序的调试、维护和开发的效率,同时降低了成本。
实施例三
图3是本发明实施例三提供的一种在客户端显示日志的装置的示意图,如图3所示,该装置包括:监听模块310、日志显示接口320和日志显示模块330。
其中,监听模块310用于监测是否接收到显示日志指令;日志显示接口320用于当接收到显示日志指令时,根据所述显示日志指令将待显示日志保存至客户端的设定存储区域;日志显示模块330用于从所述设定存储区域获取所述待显示日志并进行显示。
本发明实施例的技术方案,通过在客户端设置监听模块,以实时监测显示日志指令,并根据该指令通过客户端的日志显示接口将运行日志保存至设定存储区域,并经由监听模块获取保存的日志进行显示,实现了在客户端显示应用运行日志的方法,便于开发人员在客户端实时查看客户端相关应用的运行日志,以进行应用的开发和维护。
可选的,监听模块310,具体用于:
判断监听模块是否被触发;若是,则经由监听模块监测是否接收到显示日志指令。
可选的,日志显示接口320,具体用于:
根据所述显示日志指令,调用unity控制台的日志输出接口,将待显示日志保存至客户端的设定存储区域。
可选的,日志显示接口320的生成过程为:
对所述unity控制台的日志输出接口进行封装,并在封装时对各个日志输出接口加入显示日志指令对应的日志监听参数,将封装后的所述日志输出接口作为日志显示接口。
可选的,日志监听参数包括监听模块状态参数和日志指令参数,其中,所述监听模块状态参数用于表示监听模块是否被触发,所述日志指令参数用于接收所述日志显示指令。
可选的,日志显示模块330,具体用于
生成所述待显示日志的显示界面;从所述设定存储区域获取所述待显示日志;将所述待显示日志显示于所述显示界面。
本发明实施例所提供的在客户端显示日志的装置可执行本发明任意实施例所提供的在客户端显示日志的方法,具备执行方法相应的功能模块和有益效果。
实施例四
图4为本发明实施例四提供的一种在客户端显示日志的设备的结构示意图,如图4所示,该设备包括处理器410、存储器420、输入装置430和输出装置440;设备处理器410的数量可以是一个或多个,图4中以一个处理器410为例;设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图4中以通过总线连接为例。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的在客户端显示日志的方法对应的程序指令/模块(例如,在客户端显示日志的装置中的监听模块310、日志显示接口320和日志显示模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的在客户端显示日志的方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至设备/终端/服务器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置440可包括显示屏等显示设备。
实施例五
发明实施例五还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种在客户端显示日志的方法,该方法包括:
经由监听模块监测是否接收到显示日志指令;
若是,则经由日志显示接口根据所述显示日志指令,将待显示日志保存至客户端的设定存储区域;
经由日志显示模块从所述设定存储区域获取所述待显示日志并进行显示。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的在客户端显示日志的方法中的相关操作。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述在客户端显示日志的装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
1.一种在客户端显示日志的方法,其特征在于,包括:
经由监听模块监测是否接收到显示日志指令;
若是,则经由日志显示接口根据所述显示日志指令,将待显示日志保存至客户端的设定存储区域;
经由日志显示模块从所述设定存储区域获取所述待显示日志并进行显示。
2.根据权利要求1所述的方法,其特征在于,所述经由监听模块监测是否接收到显示日志指令,包括:
判断监听模块是否被触发;
若是,则经由监听模块监测是否接收到显示日志指令。
3.根据权利要求1所述的方法,其特征在于,将待显示日志保存至客户端的设定存储区域,包括:
调用unity控制台的日志输出接口,将待显示日志保存至客户端的设定存储区域。
4.根据权利要求3所述的方法,其特征在于,所述日志输出接口包括debug.log接口、debug.logwarning接口和debug.logerror接口。
5.根据权利要求3所述的方法,其特征在于,所述日志显示接口的生成过程为:
对所述unity控制台的日志输出接口进行封装,并在封装时对各个日志输出接口加入显示日志指令对应的日志监听参数,将封装后的所述日志输出接口作为日志显示接口。
6.根据权利要求5所述的方法,其特征在于,所述日志监听参数包括监听模块状态参数和日志指令参数,其中,所述监听模块状态参数用于表示监听模块是否被触发,所述日志指令参数用于接收所述日志显示指令。
7.根据权利要求1所述的方法,其特征在于,经由日志显示模块从所述设定存储区域获取所述待显示日志并进行显示,包括:
经由日志显示模块生成所述待显示日志的显示界面;
经由日志显示模块从所述设定存储区域获取所述待显示日志;
经由日志显示模块将所述待显示日志显示于所述显示界面。
8.一种在客户端显示日志的装置,其特征在于,包括:监听模块、日志显示接口和日志显示模块,其中,
所述监听模块用于监测是否接收到显示日志指令;
所述日志显示接口用于当接收到显示日志指令时,根据所述显示日志指令将待显示日志保存至客户端的设定存储区域;
所述日志显示模块用于从所述设定存储区域获取所述待显示日志并进行显示。
9.一种在客户端显示日志的设备,其特征在于,所述设备包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-7中任一项所述的在客户端显示日志的方法。
10.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-7中任一项所述的在客户端显示日志的方法。
技术总结