日志处理方法、装置、电子设备及存储介质制造方法及图纸

技术编号:35248703 阅读:22 留言:0更新日期:2022-10-19 09:57
本发明专利技术实施例涉及计算机技术领域,为解决在日志生产过快或过慢的情况下,造成系统内存溢出、应用崩溃的技术问题,本发明专利技术实施例提供了一种日志处理方法、装置、电子设备及存储介质,该方法包括:在确定第一日志的日志级别符合预设条件的情况下,确定与第一日志对应的环形缓冲区中存储区域是否存满;若未存满,对第一日志的第一预设数据进行格式化处理,得到第二日志;将第二日志的第二预设数据写入至环形缓冲区的目标存储位置,以便在确定环形缓冲区内日志读取线程未结束的情况下,判断存储区域中是否存在第三预设数据,若存在,读取第三预设数据并输出至预设输出位置。由此,可以避免因日志生产过快或过慢,导致系统内存溢出,应用崩溃的结果。用崩溃的结果。用崩溃的结果。

【技术实现步骤摘要】
日志处理方法、装置、电子设备及存储介质


[0001]本专利技术实施例涉及计算机
,尤其涉及一种日志处理方法、装置、电子设备及存储介质。

技术介绍

[0002]日志是IT系统产生的数据,它记录着设备、操作系统和应用软件的运行状态,是IT运维管理人员和安全管理人员日常运维排查故障、分析攻击溯源的重要依据。在开发、调试及上线过程中平台会产生大量日志,而传统日志库内存被占用太多,无法支持同步、异步日志,性能较低。
[0003]现有技术中,通过log4z(一款开源的轻量级的C++跨平台日志库)存储日志,其以单生产者/消费者为框架,以单链表数据结构存储日志数据,异步输出到控制台和文件,这就导致内存碎片过多,且如果发生生产过快而消费过慢的情况,很有可能造成系统内存溢出,使应用崩溃。

技术实现思路

[0004]鉴于此,为解决上述全部或部分的技术问题,本专利技术实施例提供一种日志处理方法、装置、电子设备及存储介质。
[0005]第一方面,本专利技术实施例提供一种日志处理方法,所述方法包括:在确定第一日志的日志级别符合预设条件的情况下,确定与所述第一日志对应的环形缓冲区中存储区域是否存满;在确定与所述第一日志对应的环形缓冲区中存储区域未存满的情况下,对所述第一日志的第一预设数据进行格式化处理,得到符合预设格式要求的第二日志;将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,以便在确定所述环形缓冲区内日志读取线程未结束的情况下,判断所述环形缓冲区的存储区域中是否存在第三预设数据,并在所述环形缓冲区的存储区域中存在所述第三预设数据的情况下,读取所述第三预设数据并输出至预设输出位置。
[0006]在一可能的实施方式中,所述确定第一日志的日志级别符合预设条件,包括:确定第一日志的日志级别;判断所述日志级别表征的日志输出位置是否为预设输出位置;在确定所述日志级别表征的日志输出位置为预设输出位置的情况下,确定所述第一日志的日志级别符合预设条件。
[0007]在一可能的实施方式中,所述确定与所述第一日志对应的环形缓冲区中存储区域是否存满,包括:确定与所述第一日志对应的环形缓冲区中日志读取线程的第一位置;确定所述环形缓冲区中日志写入线程的第二位置;根据第一位置与第二位置,确定与所述第一日志对应的环形缓冲区中存储区域是
否存满。
[0008]在一可能的实施方式中,所述根据第一位置与第二位置,确定与所述第一日志对应的环形缓冲区中存储区域是否存满,包括:在第二位置的下一位置与第一位置不一致的情况下,确定与所述第一日志对应的环形缓冲区中存储区域未存满;在第二位置的下一位置与第一位置一致的情况下,确定与所述第一日志对应的环形缓冲区中存储区域存满。
[0009]在一可能的实施方式中,所述方法还包括:在确定与所述第一日志对应的环形缓冲区中存储区域存满的情况下,确定与所述第一日志对应的环形缓冲区当前的存储区域个数;判断所述存储区域个数是否达到预设的存储区域个数阈值;在所述存储区域个数未达到预设的存储区域个数阈值的情况下,对所述环形缓冲区中存储区域进行更新,得到更新后的目标存储区域;所述将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,包括:将所述第二日志的第二预设数据写入至所述环形缓冲区的所述目标存储区域。
[0010]在一可能的实施方式中,所述对所述环形缓冲区中存储区域进行更新,得到更新后的目标存储区域,包括:发送存储区域更新请求至目标系统;接收到所述目标系统响应于所述存储区域更新请求返回的存储区域更新标识;根据所述存储区域更新标识对所述存储区域进行更新,得到更新后的目标存储区域。
[0011]在一可能的实施方式中,所述方法还包括:在所述存储区域个数达到预设的存储区域个数阈值的情况下,确定所述环形缓冲区内日志读取线程当前的日志读取任务是否结束;在确定所述环形缓冲区内日志读取线程当前的日志读取任务结束的情况下,确定所述日志读取线程在所述环形缓冲区内的第三位置,所述第三位置为所述日志读取线程的读取任务结束时在所述环形缓冲区内所处的位置;所述将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,包括:将所述第二日志的第二预设数据写入至所述环形缓冲区的第三位置。
[0012]在一可能的实施方式中,所述确定所述环形缓冲区内日志读取线程未结束,包括:获取环形缓冲区内日志读取线程对应的第一标志位,在确定第一标志位为目标标志位的情况下,确定所述环形缓冲区内日志读取线程未结束。
[0013]在一可能的实施方式中,所述方法还包括:在所述环形缓冲区的存储区域中不存在第三预设数据的情况下,执行所述获取环形缓冲区内日志读取线程对应的第一标志位的步骤。
[0014]第二方面,本专利技术实施例提供一种日志处理装置,所述装置包括:
存储区域确定模块,用于在确定第一日志的日志级别符合预设条件的情况下,确定与所述第一日志对应的环形缓冲区中存储区域是否存满;日志确定模块,用于在确定与所述第一日志对应的环形缓冲区中存储区域未存满的情况下,对所述第一日志的第一预设进行格式化处理,得到符合预设格式要求的第二日志;日志写入模块,用于将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,以便在确定所述环形缓冲区内日志读取线程未结束的情况下,判断所述环形缓冲区的存储区域中是否存在第三预设数据,并在所述环形缓冲区的存储区域中存在所述第三预设数据的情况下,读取所述第三预设数据并输出至预设输出位置。
[0015]第三方面,本专利技术实施例提供一种电子设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的日志处理程序,以实现第一方面中任一项所述的日志处理方法。
[0016]第四方面,本专利技术实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现第一方面中任一项所述的日志处理方法。
[0017]本专利技术实施例提供的技术方案,通过在确定第一日志的日志级别符合预设条件的情况下,确定与第一日志对应的环形缓冲区中存储区域是否存满;在确定与第一日志对应的环形缓冲区中存储区域未存满的情况下,对第一日志的第一预设数据进行格式化处理,得到符合预设格式要求的第二日志;将第二日志的第二预设数据写入至环形缓冲区的目标存储位置,以便在确定环形缓冲区内日志读取线程未结束的情况下,判断环形缓冲区的存储区域中是否存在第三预设数据,并在环形缓冲区的存储区域中存在第三预设数据的情况下,读取第三预设数据并输出至预设输出位置。通过设置可扩展的环形缓冲区存储用户输入的日志数据,可以在存储区域不足的情况下,对环形缓冲区的存储区域进行扩充,避免由于频繁地申请内存与释放内存,造成内存碎片过多的情况,以及因日志生产过快或过慢,导致系统内存溢出,应用崩溃的结果。其次,在确定日志级别后,可以根据日志级别筛选出不需要的日志,再对筛选后的日志进行格式化,可以避免对不需要的日志进行格式化,造成性能损失。
附图说明
[0018]图1为本专利技术实施例提供的一种日志本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种日志处理方法,其特征在于,所述方法包括:在确定第一日志的日志级别符合预设条件的情况下,确定与所述第一日志对应的环形缓冲区中存储区域是否存满;在确定与所述第一日志对应的环形缓冲区中存储区域未存满的情况下,对所述第一日志的第一预设数据进行格式化处理,得到符合预设格式要求的第二日志;将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,以便在确定所述环形缓冲区内日志读取线程未结束的情况下,判断所述环形缓冲区的存储区域中是否存在第三预设数据,并在所述环形缓冲区的存储区域中存在所述第三预设数据的情况下,读取所述第三预设数据并输出至预设输出位置。2.根据权利要求1所述的方法,其特征在于,所述确定第一日志的日志级别符合预设条件,包括:确定第一日志的日志级别;判断所述日志级别表征的日志输出位置是否为预设输出位置;在确定所述日志级别表征的日志输出位置为预设输出位置的情况下,确定所述第一日志的日志级别符合预设条件。3.根据权利要求1所述的方法,其特征在于,所述确定与所述第一日志对应的环形缓冲区中存储区域是否存满,包括:确定与所述第一日志对应的环形缓冲区中日志读取线程的第一位置;确定所述环形缓冲区中日志写入线程的第二位置;根据第一位置与第二位置,确定与所述第一日志对应的环形缓冲区中存储区域是否存满。4.根据权利要求3所述的方法,其特征在于,所述根据第一位置与第二位置,确定与所述第一日志对应的环形缓冲区中存储区域是否存满,包括:在第二位置的下一位置与第一位置不一致的情况下,确定与所述第一日志对应的环形缓冲区中存储区域未存满;在第二位置的下一位置与第一位置一致的情况下,确定与所述第一日志对应的环形缓冲区中存储区域存满。5.根据权利要求4所述的方法,其特征在于,所述方法还包括:在确定与所述第一日志对应的环形缓冲区中存储区域存满的情况下,确定与所述第一日志对应的环形缓冲区当前的存储区域个数;判断所述存储区域个数是否达到预设的存储区域个数阈值;在所述存储区域个数未达到预设的存储区域个数阈值的情况下,对所述环形缓冲区中存储区域进行更新,得到更新后的目标存储区域;所述将所述第二日志的第二预设数据写入至所述环形缓冲区的目标存储位置,包括:将所述第二日志的第二预设数据写入至所述环形缓冲区的所述目标存储区域。6.根据权利要求5所述的方法,其特征在于,所述对所述环形缓冲区中存储区域进行更新,得到更新后的目标存储区域,...

【专利技术属性】
技术研发人员:郭国峰傅联洲祝磊于惠洋
申请(专利权)人:深圳华云信息系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1