一种高稳定性日志存取方法和系统的制作方法

文档序号:9546869阅读:332来源:国知局
一种高稳定性日志存取方法和系统的制作方法
【技术领域】
[0001]本申请涉及计算机服务器技术领域,具体地说,涉及一种高稳定性日志存取方法和系统。
【背景技术】
[0002]在开发当中,日志是重中之重,任何开发都离不开日志。灵活的,高效的,不丢失数据的写日志需求已经成为开发的硬性需求。以往在直接操作磁盘写文件的情况下,写入日志耗费性能高,万一写入失败,又很容易丢失日志。当写日志崩溃也会造成业务逻辑的崩溃。而且无法对日志的命名方式,分文件的方式,以及每个文件的大小进行动态的控制。
[0003]现有技术中,写磁盘日志与逻辑代码未分开,写磁盘的性能会直接影响到业务逻辑的运行速度。当写磁盘失败时,还很可能丢失该日志。甚至当写文件崩溃时,也会造成业务逻辑的系统的崩溃。在调试过程中,如果日志写入频繁,想要动态修改日志文件的大小,以及命名方式,则无法实现。

【发明内容】

[0004]有鉴于此,本申请所要解决的技术问题是提供了一种高稳定性日志存取方法和系统,解决日志的业务逻辑和存储管理不分开而有可能产生的系统崩溃等问题。
[0005]为了解决上述技术问题,本申请有如下技术方案:
[0006]一种高稳定性日志存取方法,其特征在于,包括:业务逻辑模块写日志到Redis内存模块;所述Redis内存模块存储日志;日志提取控制模块判断是否需要提取日志,若需要,则日志提取模块从所述Redis内存模块中提取日志,并由日志提取控制模块对日志进行动态加载配置,若不需要,则继续进行判断;将从所述Redis内存模块中提取的日志存储到磁盘。
[0007]一种高稳定性日志存取系统,其特征在于,包括业务逻辑模块、Redis内存模块、日志提取模块、磁盘、日志提取控制模块,其中:所述业务逻辑模块,与所述Redis内存模块耦接,用于将日志写入所述Redis内存模块;所述Redis内存模块,与所述业务逻辑模块和所述日志提取模块耦接,用于存储日志;所述日志提取控制模块,与所述日志提取模块耦接,用于判断是否需要提取日志,以及对日志进行动态加载配置;所述日志提取模块,与所述日志提取控制模块、所述Redis内存模块和所述磁盘耦接,若需要提取日志,则所述日志提取模块从所述Redis内存模块中提取日志;所述磁盘,与所述日志提取模块耦接,用于存储从所述Redis内存模块中提取的日志。
[0008]与现有技术相比,本申请所述的方法和系统,达到了如下效果:
[0009]本发明做到了业务隔离,日志的写入性能和是否崩溃与业务逻辑,没有任何影响。
【附图说明】
[0010]此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0011]图1为本发明的所述一种高稳定性日志存取方法的流程图;
[0012]图2为本发明的所述一种高稳定性日志存取系统的实施例图。
【具体实施方式】
[0013]如在说明书及权利要求当中使用了某些词汇来指称特定组件。本领域技术人员应可理解,硬件制造商可能会用不同名词来称呼同一个组件。本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接收的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。此外,“耦接”一词在此包含任何直接及间接的电性耦接手段。因此,若文中描述一第一装置耦接于一第二装置,则代表所述第一装置可直接电性耦接于所述第二装置,或通过其他装置或耦接手段间接地电性耦接至所述第二装置。说明书后续描述为实施本申请的较佳实施方式,然所述描述乃以说明本申请的一般原则为目的,并非用以限定本申请的范围。本申请的保护范围当视所附权利要求所界定者为准。
[0014]为方便对本发明作更清楚的说明,现对其中的术语作如下解释:
[0015]Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
[0016]业务隔离:日志存盘和业务处理逻辑分开。
[0017]动态控制:日志存盘的方式可以动态控制。
[0018]实施例1
[0019]参见图1所示为本申请所述高稳定性日志存取方法的具体实施例,本实施例中所述方法包括以下步骤:
[0020]步骤101:利用Redis基于内存亦可持久化的特性,业务逻辑模块写日志到Redis内存模块;
[0021]步骤102:所述Redis内存模块存储日志;
[0022]步骤103:日志提取控制模块判断是否需要提取日志,若需要,则转入步骤104,若不需要,则继续进行判断;
[0023]步骤104:日志提取模块从所述Redis内存模块中提取日志,并由日志提取控制模块对日志进行动态加载配置,
[0024]步骤105:将从所述Redis内存模块中提取的日志存储到磁盘。
[0025]其中,所述日志提取控制模块对日志进行动态加载配置进一步包括在提取日志前加载或在运行时加载。运行时配置动态更改需要敲入命令load,通知程序进行更新配置。
[0026]其中,所述日志提取控制模块对日志进行动态加载配置进一步包括,根据配置模块中的文件命名方式和创建子文件触发条件对日志进行配置。
[0027]其中,所述文件命名方式包括ID、时间和日志等级,可以随机组合,其中ID可以是进程的ID,也可以是线程的ID,也可以是任何其它意义的ID,用于业务逻辑日志的不同需求。日志等级包括报告(info)、错误(err)和/或警告(warning)。
[0028]其中,所述创建子文件触发条件包括写入行数和写入文件的大小,其中,行数即是文件写入的次数。通过配置最大写入次数,来决定是否需要新建文件。大小即文件的大小,配置的单位为M。
[0029]日志的存储,不影响业务逻辑的运行。当日志获取工具发生意外崩溃时,只需重启或者解决问题后重启。这时写日志会暂时保存在Redis中。不必担心日志丢失。当日志工具重启后,会继续工作,从而让业务逻辑,不会感觉到有任何的变化。
[0030]日志依赖Redis,业务依赖Redis,只要Redis不崩溃,就不会发生影响到业务运行的问题。
[0031]实施例2
[0032]参见图2所示为本申请所述高稳定性日志存取系统的具体实施例,包括业务逻辑模块201、Redis内存模块202、日志提取模块203、磁盘206、日志提取控制模块204,其中:
[0033]所述业务逻辑模块201,与所述Redis内存模块202耦接,用于将日志写入所述Re
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1