一种移动终端的日志输出控制方法及系统
技术领域
本申请涉及一种移动终端根据实时的工作状态动态调整日志的输出频率和数量的控制方法及系统。
背景技术
移动终端(UE,User Equipment)通常会实时地将运行的状态信息和一些关键信息作为日志(LOG)在一定的频率下以日志文件(LOG FILE)的形式输出到特定的存储空间中。当移动终端出现问题时,技术人员可以通过特定的方法取出对应的日志文件来辅助诊断和解决问题。
现有的移动终端在出厂时,其日志的输出频率、数量、优先级等配置参数都已经固化好,在移动终端的使用过程中无法修改。如果这些日志的输出参数配置得不合适,一种可能是造成日志的过多输出,这会占用大量的处理器和内存资源,影响到移动终端正常工作;另一种可能是造成日志过少输出,在移动终端出现问题时不能够提供足够的可分析内容,从而影响分析和解决问题的效率。
发明内容
本申请所要解决的技术问题是提供一种移动终端的日志输出方法,通过动态地调整日志的输出参数,既能保证不会过多输出日志,以使移动终端始终正常工作;又能保证不会过少输出日志,以提供尽可能多的日志给技术人员在出现问题时进行分析利用。为此,本申请还要提供一种移动终端的日志输出系统。
为解决上述技术问题,本申请提供了一种移动终端的日志输出控制方法,包括如下步骤:步骤S210:移动终端实时计算出日志输出优先级阈值M。步骤S220:移动终端的某个模块期望生成一个日志,所述期望生成的日志对应于优先级等级N。所述步骤S210和步骤S220的顺序或者颠倒、或者同时进行。步骤S230:移动终端将期望生成日志的优先级等级N与优先级阈值M进行比较。步骤S240:如果N的优先级等级高于M,则移动终端的该模块生成该日志。如果N的优先级等级低于M,则移动终端的该模块放弃生成该日志。如果N的优先级等级等于M,则移动终端的该模块或者生成该日志、或者放弃生成该日志。
上述移动终端的日志输出控制方法通过实时计算的优先级阈值M来控制移动终端的日志输出。例如,移动终端的正常工作消耗了大量硬件资源时,优先级阈值M较高,此时只记录非常重要的日志。又如,移动终端在空闲状态时,优先级阈值M较低,此时可以将不那么重要的日志也一并记录下来。由此,本申请可以根据移动终端的正常工作对硬件资源的使用情况来动态且均衡地控制日志输出。
进一步地,所述步骤S210进一步包括如下步骤:步骤S310:移动终端实时获取关键参数Ri(i=1,2,……k),所述关键参数包括处理器占用时间比例、物理层数据吞吐量、存储空间占用比例的一种或多种。步骤S320:移动终端给每一个关键参数设定对应的权重值Wi(i=1,2,……k)。所述步骤S310和步骤S320的顺序或者颠倒、或者同时进行。步骤S330:移动终端将每一项关键参数Ri和对应的权重值Wi相乘,得到了一项中间值Ri×Wi;再将不同的中间值进行合并计算,得到最终的优先级阈值M;M=R1×W1+R2×W2+……+Rk×Wk。这是计算优先级阈值M的一种示例性的实现方式。
进一步地,所述步骤S210中,所述优先级阈值M保存到特定的存储空间中。这样可以便于读取和覆盖优先级阈值M。
进一步地,所述步骤S210中,所述优先级阈值M的计算是周期性进行的,计算出来的新结果覆盖之前保存的结果。这使得优先级阈值M可以始终反映移动终端的最新状态。
进一步地,所述步骤S220中,所述期望生成的日志还对应于一个日志ID。日志ID可以用来修改对应的优先级等级。
进一步地,所述步骤S220中,所述期望生成的日志对应的优先级等级N是移动终端预先设定的。这是传统的移动终端的固化不同模块输出的日志的优先级等级的方式。
进一步地,所述步骤S220中,所述期望生成的日志对应的优先级等级N根据如下步骤进行修改:步骤S410:移动终端开机。步骤S420:移动终端读取优先级等级配置文件,该文件中提供了需要修改优先级等级的日志ID以及其目标优先级等级。步骤S430:移动终端根据所述优先级等级配置文件修改对应的日志ID的优先级等级。步骤S440:移动终端开始正常工作,并按照修改后的优先级等级进行日志的输出。这是本申请的移动终端允许修改不同模块输出的日志的优先级等级的实现方式。
本申请还提供了一种移动终端的日志输出控制系统,包括阈值计算单元、日志期望生成单元、判定单元。所述阈值计算单元实时计算出日志输出优先级阈值M。所述日志期望生成单元是移动终端的某个模块,其在期望生成一个日志时得到其对应的优先级等级N。所述判定单元比较优先级等级N与优先级阈值M;如果N的优先级等级高于M,则所述判定单元允许所述日志期望生成单元生成该日志;如果N的优先级等级低于M,所述判定单元不允许所述日志期望生成单元生成该日志。如果N的优先级等级等于M,所述判定单元或者允许所述日志期望生成单元生成该日志,或者不允许所述日志期望生成单元生成该日志。
上述移动终端的日志输出控制系统通过实时计算的优先级阈值M来控制移动终端的日志输出。例如,移动终端的正常工作消耗了大量硬件资源时,优先级阈值M较高,此时只记录非常重要的日志。又如,移动终端在空闲状态时,优先级阈值M较低,此时可以将不那么重要的日志也一并记录下来。由此,本申请可以根据移动终端的正常工作对硬件资源的使用情况来动态且均衡地控制日志输出。
进一步地,所述阈值计算单元进一步包括关键参数获取单元、权重获取单元、计算单元。所述关键参数获取单元实时地获取移动终端的关键参数Ri(i=1,2,……k),所述关键参数包括处理器占用时间比例、物理层数据吞吐量、存储空间占用比例的一种或多种。所述权重获取单元获取每一个关键参数对应的权重值Wi(i=1,2,……k)。所述计算单元将每一项关键参数Ri和对应的权重值Wi相乘,得到了一项中间值Ri×Wi;再将不同的中间值进行合并计算,得到最终的优先级阈值M;M=R1×W1+R2×W2+……+Rk×Wk。这是阈值计算单元的一种示例性的实现方式。
进一步地,所述日志期望生成单元还在期望生成一个日志时得到其对应的日志ID。日志ID可以用来修改对应的优先级等级。
进一步地,所述移动终端的日志输出控制系统还包括优先级调整单元;所述优先级调整单元在优先级等级配置文件中记载了需要修改优先级等级的日志ID以及其目标优先级等级,当移动终端开机后读取所述优先级等级配置文件并据此修改对应的日志ID的优先级等级。这是本申请的移动终端允许修改不同模块输出的日志的优先级等级的实现方式。
进一步地,所述日志期望生成单元生成的每一条日志包括三部分,分别是日志ID部分、优先级等级部分和日志内容部分;所述日志ID用来区分移动终端的不同模块生成的日志。这是本申请提供的日志的数据格式的一种优选实现方式。
本申请取得的技术效果是可根据移动终端的实时使用状态,动态调整日志输出所占用的处理器资源、存储资源等,首先为移动终端的正常工作留出更多的资源,从而减少对移动终端正常工作的影响;其次又能保证最重要的日志数据的输出,为计算人员提供尽可能多的分析问题的依据。此外,本申请通过使用优先级配置文件,可以分别对不同使用场景的移动终端配置不同的日志的优先级等级,如销售到不同国家的产品等,达到有针对性地输出日志的目的。
附图说明
图1是移动终端生成的日志文件的一种数据格式示意图。
图2是本申请提供的移动终端的日志输出控制方法的流程图。
图3是步骤S210的一种具体实现方式的流程图。
图4是步骤S220中修改某个模块输出的日志的优先级等级的方法的流程图。
图5是本申请提供的移动终端的日志输出控制系统的实施例一的结构示意图。
图6是阈值计算单元510的结构示意图。
图7是本申请提供的移动终端的日志输出控制系统的实施例二的结构示意图。
图中附图标记说明:110为日志ID部分;120为优先级等级部分;130为日志内容部分;510为阈值计算单元;520为日志期望生成单元;530为判定单元;540为优先级调整单元;610为关键参数获取单元;620为权重获取单元;630为计算单元。
具体实施方式
请参阅图1,这是移动终端生成的日志文件的一种数据格式。每一条日志包括三部分,分别是日志ID部分110、优先级等级部分120和日志内容部分130。移动终端的不同模块生成不同的日志,各种日志使用其独有的日志ID加以区分。相同的日志ID对应相同的优先级等级,这表明移动终端的同一模块输出的日志具有相同的优先级等级。不同的日志ID可以对应相同的优先级等级,也可以对应不同的优先级等级。这表明移动终端的不同模块输出的日志可以具有相同的优先级等级,也可以具有不同的优先级等级。移动终端在出厂时,其可以输出的日志ID的数量就已经确定,即移动终端只允许预先设定的若干模块输出日志,这些模块的日志ID也已预先设定。
图1所示的日志文件的数据格式中,通过两个独立的字段110、120分别记录日志ID、优先级等级,这是一种优选的示例。作为一种变形,日志文件的数据格式可以省略优先级等级部分120,而在移动终端中保存一个日志ID与优先级等级的映射表。作为另一种变形,日志文件的数据格式可以省略日志ID部分110,而直接使用优先级等级部分120来区分移动终端的不同模块输出的日志。此时如果移动终端的两个模块输出的日志具有相同的优先级等级,就无法通过优先级等级部分120加以区分了。
请参阅图2,这是本申请提供的移动终端的日志输出控制方法的流程图。所述方法包括如下步骤。
步骤S210:移动终端根据一些参数通过某种特定的算法得到实时的日志输出优先级阈值M,并将阈值M保存下来备用。
步骤S220:移动终端的某个模块期望生成一个日志,其对应某一特定的优先级等级N。所述优先级等级N与该期望生成日志的模块绑定,是移动终端预先设定的,也可通过图4所述方法进行修改。此外,期望生成的日志还可对应某一特定的日志ID,所述日志ID也与该期望生成日志的模块绑定,是移动终端预先设定的。
所述步骤S210和步骤S220的顺序或者颠倒、或者同时进行。
步骤S230:移动终端将期望生成日志的优先级等级N与优先级阈值M进行比较。
步骤S240:如果N的优先级等级高于M,则移动终端的该模块生成该日志。例如,所生成的日志输出到日志文件中。优选地,所述日志文件存放到一个特定的循环存储空间。
如果N的优先级等级低于M,则移动终端的该模块放弃生成该日志,以节省处理器资源和存储资源。
如果N的优先级等级等于M,或者移动终端的该模块生成该日志,或者移动终端的该模块放弃生成该日志。
请参阅图3,这是所述步骤S210一种具体实现方式,其进一步包括如下步骤。
步骤S310:移动终端的一些模块实时地给出一些关键参数Ri(i=1,2,……k),包括但不限于处理器占用时间比例、物理层数据吞吐量、存储空间占用比例等。
步骤S320:移动终端给每一个关键参数设定对应的权重值Wi(i=1,2,……k)。
所述步骤S310和步骤S320的顺序或者颠倒、或者同时进行。
步骤S330:移动终端将每一项关键参数Ri和对应的权重值Wi相乘,得到了一项中间值Ri×Wi;再将不同的中间值进行合并计算,既可以得到最终的优先级阈值M;M=R1×W1+R2×W2+……+Rk×Wk。
优选地,所述优先级阈值M例如保存到特定的存储空间中。
优选地,所述优先级阈值M的计算例如是周期性进行的,移动终端设置一个计时器,当计时器到达设定时间后,触发进行优先级阈值M的重新计算。计算出来的新结果将覆盖之前保存的结果,以达到实时调整日志输出的目的。
请参阅图4,这是所述步骤S220中修改某个模块输出的日志的优先级等级的方法,其进一步包括如下步骤。
步骤S410:移动终端开机。
步骤S420:移动终端读取预存在某一特定存储空间的优先级等级配置文件,该文件中提供了需要修改优先级等级的日志ID以及其目标优先级等级。
步骤S430:移动终端根据所述优先级等级配置文件修改对应的日志ID的优先级等级。
步骤S440:移动终端开始正常工作,并按照修改后的优先级等级进行日志的输出。
现有的移动终端在出厂时,不同模块输出的日志的优先级等级就已经固化好,在移动终端的使用过程中无法修改。本申请通过设置优先级等级配置文件的方式可在移动终端开机时修改某个模块输出的日志的优先级等级,从而提高了日志输出的灵活性。
与上述移动终端的日志输出控制方法相对应地,本申请还提供了一种移动终端的日志输出控制系统。请参阅图5,所述移动终端的日志输出控制系统的实施例一包括阈值计算单元510、日志期望生成单元520、判定单元530。
所述阈值计算单元510根据一些参数通过某种特定的算法得到实时的日志输出优先级阈值M,并将阈值M保存下来备用。
所述日志期望生成单元520是移动终端的某个模块,其在期望生成一个日志时得到其对应某一特定的优先级等级N。所述优先级等级N与所述日志期望生成单元绑定,是移动终端预先设定的,也可通过优先级调整单元540进行修改。
所述判定单元530比较优先级等级N与优先级阈值M。如果N的优先级等级高于M,则所述判定单元530允许所述日志期望生成单元520生成该日志。如果N的优先级等级低于M,则所述判定单元530不允许所述日志期望生成单元520生成该日志。如果N的优先级等级等于M,所述判定单元530或者允许所述日志期望生成单元520生成该日志,或者不允许所述日志期望生成单元520生成该日志。
请参阅图6,所述阈值计算单元510进一步包括关键参数获取单元610、权重获取单元620、计算单元630。
所述关键参数获取单元610实时地获取移动终端的一些关键参数Ri(i=1,2,……k),包括但不限于处理器占用时间比例、物理层数据吞吐量、存储空间占用比例等。
所述权重获取单元620获取每一个关键参数对应的权重值Wi(i=1,2,……k)。
所述计算单元630将每一项关键参数Ri和对应的权重值Wi相乘,得到了一项中间值Ri×Wi;再将不同的中间值进行合并计算,既可以得到最终的优先级阈值M;M=R1×W1+R2×W2+……+Rk×Wk。
请参阅图7,所述移动终端的日志输出控制系统的实施例二在图5所示的实施例一的基础上还包括优先级调整单元540。所述优先级调整单元在优先级等级配置文件中记载了需要修改优先级等级的日志ID以及其目标优先级等级,当移动终端开机后读取所述优先级等级配置文件并据此修改对应的日志ID的优先级等级。
以上仅为本申请的优选实施例,并不用于限定本申请。对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。