一种输出日志信息的方法及系统与流程

文档序号:11990729阅读:149来源:国知局
一种输出日志信息的方法及系统与流程
本发明涉及计算机技术,特别涉及一种输出日志信息的方法及系统。

背景技术:
在智能电视的门户系统中,系统包含的网元上运行的日志系统,在通常情况下将日志分为Error级别和Debug级别;一般在系统正式上线运营时会将日志设定在一个较高的级别,比如Error级别,但是Error级别的日志只能提示该网元运行过程中出现了错误,考虑到效率问题,Error级别的日志一般是在系统发生错误时候才输出,且只能输出和Error有直接关系的信息,不能够详细输出定位问题所需要的Debug信息,例如运行一个函数,在生成Error日志之前可能已生成了三条Debug日志,然后生成了Error日志,在当发生Error时,仅靠输出Error日志的信息可能不够,只有输出上述三条Debug日志的信息,才能完成问题的定位。因此,现有的系统发生了Error,在定位问题和分析问题发生的原因时由于不能够获取到足够的信息,只能获得Error日志,定位较为困难且工作效率较为低下。

技术实现要素:
本发明提供了一种输出日志信息的方法及系统,用以使得的项目或应用得以实现。根据本发明的一个方面,提供了一种输出日志信息的方法,该方法能够输出定位问题和分析问题发生的原因所需的信息,提高工作效率。根据本发明的一个方面,提供了一种输出日志信息的系统,该系统能够输出定位问题和分析问题发生的原因所需的信息,提高工作效率。本发明的目的是通过下述技术方案实现的:本发明提供了一种输出日志信息的方法,该方法在生成日志信息后被触发,包括:接收日志输出请求;判断请求输出的日志的级别是否不低于设定级别;如果请求输出的日志的级别不低于设定级别,将请求输出的日志携带的功能标识保存在内存中,并在以预设时间进行计数的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出;所述日志携带的功能标识为用以表示日志所对应的一类操作或一类功能的信息。较佳地,该方法进一步包括:在所述计数周期届满之后,清除内存中的功能标识。较佳地,该方法进一步包括:如果在预设时间内,再一次接收到不低于设定级别的输出日志信息的请求,重新设定以所述预设时间进行计数,并在该重新设定的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出;如果在预设时间之后,再一次接收到不低于设定级别的输出日志信息的请求,将请求输出的日志携带的功能标识保存在内存中,再次设定以所述预设时间进行计数,并在该再次设定的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。较佳地,该方法进一步包括:如果请求输出的日志的级别低于设定级别,判断内存中是否存在功能标识;如果存在功能标识,将请求输出的日志的级别以及低于该级别的日志信息输出;如果不存在功能标识,不输出请求级别的日志信息。较佳地,所述接收日志输出请求之后进一步包括:判断设定级别是否为最低的日志级别,如果设定级别是最低的日志级别,在接收到外部结束指令前将请求输出的日志的级别以及低于该级别的日志信息输出。本发明提供了一种输出日志信息的系统,该系统包含:控制模块,在生成日志信息后被触发,接收日志输出请求,判断请求输出的日志的级别是否不低于设定级别,如果是,则将请求输出的日志携带的功能标识保存在内存中,输出第一触发信号至计数器,输出第二触发信号至输出模块;计数器,根据第一触发信号开始以预设时间进行计数;输出模块,根据第二触发信号,在所述计数器的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出;所述日志携带的功能标识为用以表示日志所对应的一类操作或一类功能的信息。较佳地,所述控制模块还在所述计数器的计数周期届满后,清除所述内存中保存的日志携带的功能标识。较佳地,所述控制模块在所述计数器的计数周期届满前,还再一次接收到不低于设定级别的输出日志信息的请求,则输出第三触发信号至所述计数器;所述计数器还根据第三触发信号停止前一次计数周期,重新设定以所述预设时间进行计数;所述输出模块还在所述计数器的重新设定的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。较佳地,所述控制模块在所述计数器的计数周期届满后,还再一次接收到不低于设定级别的输出日志信息的请求,则将请求输出的日志携带的功能标识保存在内存中,输出第一触发信号至所述计数器,输出第二触发信号至所述输出模块。较佳地,所述控制模块还在判定请求输出的日志的级别低于设定级别时,判断所述内存中是否保存有功能标识,如果保存有功能标识,则输出第四触发信号至所述输出模块,输出第一触发信号至所述计数器,否则控制所述输出模块不输出日志信息;所述输出模块还根据第四触发信号,在所述计数器的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。较佳地,所述控制模块还在接收日志输出请求后,判断设定级别是否为最低的日志级别,如果是,则输出第五触发信号至所述输出模块,否则对请求输出的日志的级别是否不低于设定级别进行判断;所述控制模块还根据外部结束指令控制所述输出模块停止输出日志信息;所述输出模块还根据第五触发信号将请求输出的日志的级别以及低于该级别的日志信息输出。由上述的技术方案可见,本发明提供了一种利用设定的级别以及日志携带的功能标识确定是否输出日志信息的方法,即在网元生成了较高级别的日志信息时,根据设定级别及请求输出的日志级别间的关系,在一定的时间范围内输出较低级别的日志信息,便于定位问题和分析解决问题,既保证了网元在正常状态下不需要输出较低级别的信息,提高系统效率,减少日志打印量和系统负担,又能够在发生较高级别的异常时能够及时切换日志级别,输出更多的调试信息,提高工作效率。附图说明图1为本发明输出日志信息的方法的流程图;图2为本发明输出日志信息的系统的装置的结构示意图。具体实施方式由于现有技术中,网元生成了高于Debug级别的日志时,比如:Warning级别的日志、Error级别的日志,输出的日志信息中不包含生成该高于Debug级别的日志之前所生成的Debug级别的日志,只能输出一个用来表示网元发生了某种故障的提示信息,比如Warning,Error等,需要重新对网元进行运行和调试,以确定发生故障的问题所在;本发明就是针对现有的上述问题,在生成了日志信息后,利用设定级别与请求输出的日志的级别的关系、及日志携带的功能标识,对请求输出的日志的级别进行调整,即调整为将请求输出的日志的级别以及低于该级别的日志信息输出,或者将请求级别的日志信息输出,能够输出定位问题和分析问题发生的原因所需的信息,提高工作效率。本发明提供了一种输出日志信息的方法,该方法在生成日志信息后被触发,包括:接收日志输出请求;判断请求输出的日志的级别是否不低于设定级别;如果请求输出的日志的级别不低于设定级别,将请求输出的日志携带的功能标识保存在内存中,并在以预设时间进行计数的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出;日志携带的功能标识为用以表示日志所对应的一类操作或一类功能的信息。本发明提及的设定级别可以为现有的调试或运行软件或系统过程中的生成的日志的级别,比如:现有的Debug级别至Error级别中的任一级别,或低于Debug级别的任一级别,或高于Error级别的任一级别,在此不再对可能的日志的级别进行逐一列举。图1为本发明输出日志信息的方法的流程图。现结合图1,对本发明的输出日志信息的方法进行说明,具体如下:步骤100:开始;网元运行或调试某一软件或系统时,生成针对该被运行或被调试的软件或系统的日志信息,在生成日志信息后触发执行步骤10。该步骤可创建一个用以执行图1所示的方法流程的独立线程,具体创建方法可采用现有的线程创建方法,在此不再赘述。步骤101:判断是否接收到日志输出请求,如果是,执行步骤102,否则执行步骤101;该步骤中的日志输出请求可以在日志输出函数被调用后生成,该步骤可由创建的独立线程判断是否接收到生成的日志输出请求。步骤102:判断设定级别是否为最低的日志级别,如果是,执行步骤114,否则执行步骤103;本实施例中的最低的日志级别可以为Debug级别或比Debug级别更低的级别。步骤103:判断请求输出的日志的级别是否不低于设定级别,如果是,执行步骤106,否则执行步骤104;该步骤中的若请求输出的日志的级别高于设定级别或为设定级别,比如请求输出的日志的级别为Error级别、Warning级别等,设定级别为Debug级别,则对是否首次接收到日志输出请求进行判断,以确定是否输出请求输出的日志的级别以及低于该级别的日志信息;若请求输出的日志的级别低于设定级别,比如请求输出的日志的级别为Debug级别,设定级别为Error级别、Warning级别等,则对功能标识进行判断,以确定是否输出请求级别的日志信息。步骤104:判断内存中是否保存有功能标识,如果是,执行步骤110,否则执行步骤105;该步骤中提及的日志携带的功能标识为表示日志对应的某一类操作或某类功能的信息,比如与“微博”对应的函数可以用“weibo”作为其功能标识,一旦运行或调试与“微博”有关的软件或程序,则生成的日志中会携带“weibo”这一功能标识。比如:请求输出一个Debug级别的日志,但是设定只有Error级别的日志才能输出,本发明就可以通过检测日志携带的功能标识来实现Debug级别的日志信息的输出,如果内存中保存有这个功能标识,则说明这个功能在某个时间周期内出错了,Debug级别的日志信息也得输出,即执行步骤110。步骤105:不输出请求级别的日志信息,之后执行步骤113;该步骤为控制不输出请求级别的日志信息。步骤106:是否为首次接收到日志输出请求,如果是,执行步骤108,否则执行步骤107;该步骤可根据内存中是否保存有日志携带的功能标识来判断是否首次接收到日志输出请求。步骤107:判断是否在一个计数周期内,如果是,执行步骤109,否则执行步骤108;该步骤是判断上一个日志输出的周期,如果是,表示上一个计数周期没有结束就再一次接收到日志输出请求,再一次接收到的日志输出请求需要暂停上一个周期并重新开始一个新的计数周期,如果否,表示再一次接收到的日志输出请求是在上一个计数周期结束后接收到的,可在上一个计数周期结束后开始一个新的计数周期。步骤108:保存日志携带的功能标识,并启动计数器,之后执行步骤110;该步骤将日志携带的功能标识保存至内存,并启动计数器,使之以预设时间进行计数。步骤109:重置计数周期,之后执行步骤110;该步骤即为停止正在进行的计数周期,重新以预设时间进行计数,开始一个新的计数周期。步骤110:将请求输出的日志的级别以及低于该级别的日志信息输出;为了能够得到足够多的调试信息,本发明在输出请求输出的日志的级别的日志信息的同时,还输出低于该级别的日志信息。步骤111:是否达到计数周期,如果是,执行步骤112,否则执行步骤110及步骤101;该步骤可通过一个定时器或计数器,对输出日志信息的时间进行控制,即未达到预设的时间,便一直输出日志信息,这样既能输出定位或分析问题所需的信息,同时又不会因为输出的日志信息太多对系统造成负担。在未达到计数周期的时间段内,还判断是否接收到输出日志的请求,即执行步骤101。步骤112:清除内存中日志携带的功能标识;通过清除内存中日志携带的功能标识完成一个计数周期的日志信息的输出。步骤113:是否结束线程,如果是,执行步骤116,否则执行步骤101;该步骤可根据外部结束指令判断是否结束线程,如果不结束该线程,则继续判断是否接收到输出日志的请求,即步骤101。步骤114:将请求输出的日志的级别以及低于该级别的日志信息输出;步骤115:是否结束线程,如果是,执行步骤116,否则执行步骤114及步骤101;该步骤可根据外部结束指令判断是否结束线程,如果不结束该线程,则继续执行日志信息的输出,即步骤114,并判断是否接收到输出日志的请求,即步骤101。步骤116:结束。图2为本发明输出日志信息的系统的结构示意图。现结合图2,对本发明输出日志信息的系统进行说明,具体如下:本发明的输出日志信息的系统在生成输出日志后被触发。本发明的输出日志信息的系统包含:控制模块21、计数器23和输出模块24。控制模块21在生成日志信息后被触发,接收日志输出请求,判断请求输出的日志的级别是否不低于设定级别,如果是,则将请求输出的日志携带的功能标识保存在内存22中,输出第一触发信号至计数器23,输出第二触发信号至输出模块24。具体地,控制模块21在被触发后,一直在检测是否接收到日志输出请求,一旦检测接收到日志输出请求,即执行本发明的对输出日志信息进行控制的流程。计数器23根据第一触发信号开始以预设时间进行计数。具体地,计数器23根据第一出发信号开始计数,在计数周期结束时触发输出模块24停止输出日志信息。输出模块24根据第二触发信号,在计数器23的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。为了能够有效地输出请求的日志信息,控制模块21还在计数器23的计数周期届满后,清除内存中保存的日志携带的功能标识。为了提高工作效率,控制模块21能够在前一次输出日志信息的周期内处理再一次接收到的日志输出请求,具体地,控制模块21在计数器23的计数周期届满前,还再一次接收到不低于设定级别的输出日志信息的请求,则输出第三触发信号至计数器23;计数器23还根据第三触发信号停止前一次计数周期,重新设定以预设时间进行计数;输出模块24还在计数器23的重新设定的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。控制模块21在计数器23的计数周期届满后,还再一次接收到不低于设定级别的输出日志信息的请求,则将请求输出的日志携带的功能标识保存在内存中,并输出第一触发信号至计数器23,输出第二触发信号至输出模块24;计数器23还根据第一触发信号再次设定以预设时间进行计数;输出模块24还根据第二触发信号,在计数器23的再次设定的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。控制模块21还在判定请求输出的日志的级别低于设定级别时,判断内存中是否保存有功能标识,如果保存有功能标识,则输出第四触发信号至输出模块24,否则控制输出模块24不输出日志信息;输出模块24还根据第四触发信号,在所述计数器的计数周期内将请求输出的日志的级别以及低于该级别的日志信息输出。控制模块21还在接收日志输出请求后,判断设定级别是否为最低的日志级别,如果是,则输出第五触发信号至输出模块24,否则对请求输出的日志的级别是否不低于设定级别进行判断;控制模块21还根据外部结束指令控制输出模块24停止输出日志信息;输出模块24还根据第五触发信号将请求输出的日志的级别以及低于该级别的日志信息输出。此时,输出模块24不再根据计数器23的计数周期停止输出日志信息,而在控制模块21的控制下停止输出日志信息。其中,控制模块21可为系统中建立的用以控制日志信息输出的独立线程,控制模块21可根据接收到的外部结束指令结束线程,即结束输出日志信息,在控制模块21未接收到外部结束指令时,会一直处于检测是否接收到日志输出请求,并根据该请求中日志的级别与设定级别的关系、内存中是否保存有日志携带的功能标识来进行日志信息的输出。本发明的上述较佳实施例中,在请求输出所生成的较高级别日志时,能够自动调整日志级别在一定的时间范围内到较低的级别,从而能够输出足够多协助定位问题的信息,比如:对请求输出的日志的级别做判断,如果请求输出的日志的级别是Error级别,并且设置级别不高于Error级别的情况下,自动调整日志级别到较低级别,并且调整日志级别后设置计数器或定时模块,在达到预设的时间后停止较低级别的日志的输出;本发明还通过日志携带的功能标识的判断,只在满足条件的情况下输出某一范围内的较低级别的日志,避免了将整个系统的日志级别调整到较低级别所导致的日志输出量太大,系统负担过重的问题,既保证了在网元正常状态下不需要输出较低级别的信息,提高系统效率,减少日志打印量和系统负担,又能够在网元生成较高级别的日志时能够及时切换日志级别,输出更多的调试信息,帮助运维或开发人员分析问题,大大缩短解决问题的时间,提高了工作效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读取存储介质中,如:ROM/RAM、磁碟、光盘等。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1