一种日志存储方法及装置制造方法及图纸

技术编号:18165558 阅读:35 留言:0更新日期:2018-06-09 11:28
本发明专利技术实施例公开了一种日志存储方法及装置,所述方法包括:当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。

A log storage method and device

An embodiment of the invention discloses a log storage method and device. The method includes: when the current log of the main line service is obtained at a pre set log output point, the storage thread of the current log is established; the current log is stored in the message queue through the storage thread; the message team is in the message queue. The current log is obtained in the column; the current log is stored in the local file.

【技术实现步骤摘要】
一种日志存储方法及装置
本专利技术涉及数据存储技术,尤其涉及一种日志存储方法及装置。
技术介绍
在当今的业务支撑系统中,日志已经成为维护运营系统时所使用的一个重要工具。随着业务的不断扩展,日志的量级也在成倍增加,而如何实现高性能的日志存储也日益显的重要。不同软件技术架构之间的差异性,决定了日志存储方案也不尽相同。现有的日志存储方法主要包括以下三种:第一、基于同步阻塞式输入输出IO的存储方法:该方法是在对日志具有输出需求的主线业务内,日志存储与主线业务使用同一个线程。具体地,在该线程中直接建立IO策略,通过该IO策略将主线业务产生的日志存储到本地文件中。第二、基于异步非阻塞式IO的存储方法:该方法是在对日志具有输出需求的主线业务内,日志存储与主线业务使用不同的线程。具体地,当在主线业务的日志输出点处获取到主线业务的当前日志时,建立当前日志的存储线程,在新建的存储线程中建立IO策略,通过该策略将主线业务产生的日志存储到本地文件中。第三、基于合并式IO的存储方法:该方法是针对主线业务的一次处理过程中需要多次输出日志的场景而提出的。在合并式IO的存储方案中,将多个日志输出到内存中,在主线业务处理结束时或者主线业务完成到达某个阶段时,将内存中全部日志通过一次性IO存储到本地文件中。在实现本专利技术的过程中,专利技术人发现现有技术中至少存在如下问题:在现有的第一种日志存储方法中,日志存储与主线业务使用同一个线程,主线业务将会受到日志存储的严重影响;在现有的第二种日志存储方法中,日志存储与主线业务虽然使用不同的线程,但是当日志输出需求较大时,日志存储仍然会对主线业务产生较大的影响;在现有的第三种日志存储方法中,如果内存在输出日志之前发生故障,则全部日志就会丢失,这样就会导致日志存储的可靠性变差。
技术实现思路
为解决上述技术问题,本专利技术实施例期望提供一种日志存储方法及装置,不仅可以减少日志存储对主线业务的影响,而且还可以增加日志存储的可靠性。本专利技术的技术方案是这样实现的:本专利技术实施例提出了一种日志存储方法,所述方法包括:当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。在上述实施例中,所述建立所述当前日志的存储线程,包括:确定所述主线业务占用的第一资源;在所述第一资源之外获取所述存储线程所需要的第二资源;使用所述第二资源建立所述存储线程。在上述实施例中,所述通过所述存储线程将所述当前日志缓存到消息队列中,包括:确定所述当前日志的日志类型;在所述消息队列中确定所述日志类型对应的存储空间;通过所述存储线程将所述当前日志缓存到所述存储空间中。在上述实施例中,在所述消息队列中获取所述当前日志之前,所述方法还包括:对所述消息队列进行监控;当在所述消息队列中监控到所述当前日志时,在所述消息队列中获取所述当前日志。在上述实施例中,所述将所述当前日志存储到本地文件中,包括:将所述当前日志缓存到日志数据库中;在所述日志数据库中获取所述当前日志;将所述当前日志存储到本地文件中。本专利技术实施例还提出了一种日志存储装置,所述装置包括:第一存储单元和第二存储单元;所述第一存储单元,用于当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;所述第二存储单元,用于在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。在上述实施例中,所述第一存储单元包括:确定子单元和缓存子单元;所述确定子单元,用于确定所述主线业务占用的第一资源;所述缓存子单元,用于在所述第一资源之外获取所述存储线程所需要的第二资源;使用所述第二资源建立所述存储线程。在上述实施例中,所述确定子单元,还用于确定所述当前日志的日志类型;在所述消息队列中确定所述日志类型对应的存储空间;所述缓存子单元,还用于通过所述存储线程将所述当前日志缓存到所述存储空间中。在上述实施例中,所述第二存储单元,还用于对所述消息队列进行监控;当在所述消息队列中监控到所述当前日志时,在所述消息队列中获取所述当前日志。在上述实施例中,所述第二存储单元包括:第一存储子单元和第二存储子单元;所述第一存储子单元,用于将所述当前日志缓存到日志数据库中;所述第二存储子单元,用于在所述日志数据库中获取所述当前日志;将所述当前日志存储到本地文件中。本专利技术实施例提出了一种日志存储方法及装置,当在预先设置的日志输出点处获取到主线业务的当前日志时,先建立当前日志的存储线程;通过存储线程将当前日志缓存到消息队列中;然后在消息队列中获取当前日志;最后将当前日志存储到本地文件中。也就是说,在本专利技术实施例提出的技术方案中,通过新建的存储线程将当前日志缓存到消息队列中;而且,在将当前日志缓存到消息队列中之后,立即将当前日志存储到本地文件中。而在现有技术中,将多个日志输出到内存中,在主线业务处理结束时或者主线业务完成到达某个阶段时,将全部日志通过一次性IO存储到本地文件中。因此,和现有技术相比,本专利技术实施例提出的日志存储方法及装置,不仅可以减少日志存储对主线业务的影响,而且还可以增加日志存储的可靠性;并且,本专利技术实施例的技术方案实现简单方便、便于普及,适用范围更广。附图说明图1为本专利技术实施例中日志存储方法的第一实现流程示意图;图2为本专利技术实施例中缓存当前日志的实现方法流程示意图;图3为本专利技术实施例中对消息队列进行监控的实现方法流程图;图4为本专利技术实施例中日志存储方法的第二实现流程示意图;图5为本专利技术实施例中日志存储装置的第一组成结构示意图;图6为本专利技术实施例中日志存储装置的第二组成结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述。在本专利技术的具体实施例中,图1为本专利技术实施例中日志存储方法的第一实现流程示意图。如图1所示,日志存储方法可以包括以下步骤:步骤101、当在预先设置的日志输出点处获取到主线业务的当前日志时,建立当前日志的存储线程。在本专利技术的具体实施例中,可以在主线业务中预先设置至少一个日志输出点,当在预先设置的日志输出点处获取到主线业务的当前日志时,可以建立当前日志的存储线程。具体地,可以先确定主线业务占用的第一资源;然后在第一资源之外获取存储线程所需要的第二资源;再使用第二资源建立存储线程。步骤102、通过存储线程将当前日志缓存到消息队列中。在本专利技术的具体实施例中,在建立完成当前日志的存储线程之后,可以通过存储线程将当前日志缓存到消息队列中。图2为本专利技术实施例中缓存当前日志的实现方法流程示意图。如图2所示,将当前日志缓存到消息队列中的方法可以包括以下步骤:步骤201、确定当前日志的日志类型。在本专利技术的具体实施例中,在将当前日志缓存到消息队列中时,可以先确定当前日志的日志类型。在本专利技术的具体实施例中,日志类型可以包括:统计日志、错误日志和业务日志。具体地,可以采用现有技术中的日志分析方法,对当前日志进行分析,然后根据分析结果确定当前日志的日志类型。步骤202、在消息队列中确定日志类型对应的存储空间。在本专利技术的具体实施例中,在确定当前日志的日志类型之后,可以在本文档来自技高网
...
一种日志存储方法及装置

【技术保护点】
一种日志存储方法,其特征在于,所述方法包括:当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。

【技术特征摘要】
1.一种日志存储方法,其特征在于,所述方法包括:当在预先设置的日志输出点处获取到主线业务的当前日志时,建立所述当前日志的存储线程;通过所述存储线程将所述当前日志缓存到消息队列中;在所述消息队列中获取所述当前日志;将所述当前日志存储到本地文件中。2.根据权利要求1所述的方法,其特征在于,所述建立所述当前日志的存储线程,包括:确定所述主线业务占用的第一资源;在所述第一资源之外获取所述存储线程所需要的第二资源;使用所述第二资源建立所述存储线程。3.根据权利要求1所述的方法,其特征在于,所述通过所述存储线程将所述当前日志缓存到消息队列中,包括:确定所述当前日志的日志类型;在所述消息队列中确定所述日志类型对应的存储空间;通过所述存储线程将所述当前日志缓存到所述存储空间中。4.根据权利要求1所述的方法,其特征在于,在所述消息队列中获取所述当前日志之前,所述方法还包括:对所述消息队列进行监控;当在所述消息队列中监控到所述当前日志时,在所述消息队列中获取所述当前日志。5.根据权利要求1所述的方法,其特征在于,所述将所述当前日志存储到本地文件中,包括:将所述当前日志缓存到日志数据库中;在所述日志数据库中获取所述当前日志;将所述当前日志存储到本地文件中。6.一种日志存储装置,其特征在于,所述装置包括:第一存储单元和第二存...

【专利技术属性】
技术研发人员:王浩硕胡建华宁宇白国涛张琳
申请(专利权)人:中移苏州软件技术有限公司中国移动通信集团公司
类型:发明
国别省市:江苏,32

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

1