本发明专利技术实施例提供了一种日志保存方法、装置、存储介质和计算机设备。该方法包括:在设置的预留内存中建立循环缓冲区,所述循环缓冲区包括第一缓冲区和第二缓冲区;将系统日志输出至所述第一缓冲区;判断第一缓冲区或第二缓冲区的系统日志是否已写满;若判断出第一缓冲区的系统日志已写满时,通知应用层进行读取,并清空第一缓冲区的系统日志;将系统日志输出至所述第二缓冲区;若判断出第二缓冲区的系统日志已写满时,通知应用层进行读取,并清空第二缓冲区的系统日志,继续执行所述将系统日志输出至所述第一缓冲区的步骤,提高了保存日志的效率。效率。效率。
【技术实现步骤摘要】
一种日志保存方法、装置、存储介质和计算机设备
[0001]本专利技术涉及计算机
,尤其涉及一种日志保存方法、装置、存储介质和计算机设备。
技术介绍
[0002]当系统出现异常后,往往最后时刻的系统打印的出错信息对于定位分析系统出错原因有很大的帮助,但是出厂后的产品由于无法外接调试工具而问题复现困难,而系统出现异常崩溃时却无法保存当时的系统出错信息,导致开发人员难于定位系统异常原因。
[0003]相关技术中,通常使用Linux系统常用的Kdump机制内核崩溃捕获机制来在系统出现异常时,保存部分系统出错信息。但是,当出现系统崩溃等异常情况时,需要手动到处系统出错相关信息,操作过程复杂、繁琐,且只能将系统出错信息保存到易失性存储器中,当计算机设备重新上电后数据会丢失,降低了保存日志的效率。
技术实现思路
[0004]有鉴于此,本专利技术实施例提供了一种日志保存方法、装置、存储介质和计算机设备,用以提高保存日志的效率。
[0005]一方面,本专利技术实施例提供了一种日志保存方法,包括:
[0006]在设置的预留内存中建立循环缓冲区,所述循环缓冲区包括第一缓冲区和第二缓冲区;
[0007]将系统日志输出至所述第一缓冲区;
[0008]判断第一缓冲区或第二缓冲区的系统日志是否已写满;
[0009]若判断出第一缓冲区的系统日志已写满时,通知应用层进行读取,并清空第一缓冲区的系统日志;
[0010]将系统日志输出至所述第二缓冲区;
[0011]若判断出第二缓冲区的系统日志已写满时,通知应用层进行读取,并清空第二缓冲区的系统日志,继续执行所述将系统日志输出至所述第一缓冲区的步骤。
[0012]可选地,还包括:
[0013]若判断出第一缓冲区或第二缓冲区的系统日志均未写满时,判断系统是否正常运行;
[0014]若判断出系统正常运行,继续执行所述将系统日志输出至第一缓冲区的步骤。
[0015]可选地,还包括:
[0016]若判断出系统未正常运行,通过看门狗触发系统重启。
[0017]可选地,所述循环缓冲区设置有魔术数字,所述通过看门狗触发系统重启之后,包括:
[0018]判断系统是否异常重启;
[0019]若判断出系统异常重启,判断所述魔术数字是否损坏;
[0020]若判断出所述魔术数字未损坏,判断第一缓冲区或第二缓冲区的系统日志是否已写满;
[0021]若判断出第一缓冲区或第二缓冲区的系统日志已写满,根据设置的物理内存地址与用户虚拟地址的对应关系获取写满的第一缓冲区或写满的第二缓冲区的系统日志,并清空写满的第一缓冲区或写满的第二缓冲区;
[0022]将剩余的系统日志存储至非易失性存储介质中;
[0023]标记所述剩余的系统日志为异常日志。
[0024]可选地,还包括:
[0025]若判断出系统未异常重启,判断是否接收到内核发送的获取系统日志信息;
[0026]若判断出接收到内核发送的获取系统日志信息,判断所述魔术数字是否损坏;
[0027]若判断出所述魔术数字未损坏,获取已写满的第一缓冲区或第二缓冲区的系统日志;
[0028]将所述已写满的第一缓冲区或第二缓冲区的系统日志存储至非易失性存储介质;
[0029]清空所述已写满的第一缓冲区或第二缓冲区,并继续执行所述判断系统是否异常重启的步骤。
[0030]可选地,还包括:
[0031]若判断出第一缓冲区或第二缓冲区的系统日志均未写满,继续执行所述将剩余的系统日志存储至非易失性存储介质中的步骤。
[0032]可选地,还包括:
[0033]若判断出所述魔术数字已损坏,显示存储异常报警信息。
[0034]另一方面,本专利技术实施例提供了一种日志保存装置,包括:
[0035]建立模块,用于在设置的预留内存中建立循环缓冲区,所述循环缓冲区包括第一缓冲区和第二缓冲区;
[0036]第一输出模块,用于将系统日志输出至所述第一缓冲区;
[0037]第一判断模块,用于判断第一缓冲区或第二缓冲区的系统日志是否已写满;
[0038]第一清空模块,用于若第一判断模块判断出第一缓冲区的系统日志已写满时,通知应用层进行读取,并清空第一缓冲区的系统日志;
[0039]第二输出模块,用于将系统日志输出至第二缓冲区;
[0040]第二清空模块,用于若第一判断模块判断出第二缓冲区的系统日志已写满时,通知应用层进行读取,并清空第二缓冲区的系统日志,触发第一输出模块继续执行所述将系统日志输出至第一缓冲区的步骤。
[0041]另一方面,本专利技术实施例提供了一种存储介质,包括:所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述一种日志保存方法。
[0042]另一方面,本专利技术实施例提供了一种计算机设备,包括存储器和处理器,所述存储器用于存储包括程序指令的信息,所述处理器用于控制程序指令的执行,其特征在于,所述程序指令被处理器加载并执行时实现上述一种日志保存方法的步骤。
[0043]本专利技术实施例提供的日志保存方法的技术方案中,在设置的预留内存中建立循环缓冲区,循环缓冲区包括第一缓冲区和第二缓冲区;将系统日志输出至第一缓冲区;判断第一缓冲区或第二缓冲区的系统日志是否已写满;若判断出第一缓冲区的系统日志已写满
时,通知应用层进行读取,并清空第一缓冲区的系统日志;将系统日志输出至所述第二缓冲区;若判断出第二缓冲区的系统日志已写满时,通知应用层进行读取,并清空第二缓冲区的系统日志,继续执行将系统日志输出至第一缓冲区的步骤,提高了保存日志的效率。
【附图说明】
[0044]为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
[0045]图1为本专利技术实施例提供的一种日志保存方法的流程图;
[0046]图2为本专利技术实施例提供的另一种日志保存方法的流程图;
[0047]图3为循环缓冲区的结构示意图;
[0048]图4为本专利技术实施例提供的一种日志保存装置的结构示意图;
[0049]图5为本专利技术实施例提供的一种计算机设备的示意图。
【具体实施方式】
[0050]为了更好的理解本专利技术的技术方案,下面结合附图对本专利技术实施例进行详细描述。
[0051]应当明确,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本专利技术保护的范围。
[0052]在本专利技术实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本专利技术。在本专利技术实施例和所附权利要求书中所使用本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种日志保存方法,其特征在于,包括:在设置的预留内存中建立循环缓冲区,所述循环缓冲区包括第一缓冲区和第二缓冲区;将系统日志输出至所述第一缓冲区;判断第一缓冲区或第二缓冲区的系统日志是否已写满;若判断出第一缓冲区的系统日志已写满时,通知应用层进行读取,并清空第一缓冲区的系统日志;将系统日志输出至所述第二缓冲区;若判断出第二缓冲区的系统日志已写满时,通知应用层进行读取,并清空第二缓冲区的系统日志,继续执行所述将系统日志输出至所述第一缓冲区的步骤。2.根据权利要求1所述的方法,其特征在于,还包括:若判断出第一缓冲区或第二缓冲区的系统日志均未写满时,判断系统是否正常运行;若判断出系统正常运行,继续执行所述将系统日志输出至第一缓冲区的步骤。3.根据权利要求2所述的方法,其特征在于,还包括:若判断出系统未正常运行,通过看门狗触发系统重启。4.根据权利要求3所述的方法,其特征在于,所述循环缓冲区设置有魔术数字,所述通过看门狗触发系统重启之后,包括:判断系统是否异常重启;若判断出系统异常重启,判断所述魔术数字是否损坏;若判断出所述魔术数字未损坏,判断第一缓冲区或第二缓冲区的系统日志是否已写满;若判断出第一缓冲区或第二缓冲区的系统日志已写满,根据设置的物理内存地址与用户虚拟地址的对应关系获取写满的第一缓冲区或写满的第二缓冲区的系统日志,并清空写满的第一缓冲区或写满的第二缓冲区;将剩余的系统日志存储至非易失性存储介质中;标记所述剩余的系统日志为异常日志。5.根据权利要求4所述的方法,其特征在于,还包括:若判断出系统未异常重启,判断是否接收到内核发送的获取系统日志信息;若判断出接收到内核发送的获取系统日志信息,判断所述魔术数字是否损坏;若判断出所述魔术数...
【专利技术属性】
技术研发人员:柯冬明,石献磊,曾健荣,
申请(专利权)人:广东皓行科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。