日志记录方法及日志记录器与流程

文档序号:11133501阅读:671来源:国知局
日志记录方法及日志记录器与制造工艺

本发明涉及计算机技术领域,尤其涉及一种日志记录方法及日志记录器。



背景技术:

系统日志对于计算机的系统硬件、软件、应用程序等都有着重要意义,因此系统日志的记录方式受到越来多的关注。目前的系统日志,一般都是通过固定的记录方式存储在固定目录或者固定数据库中,或者调用固定的存储接口存储。

如公开号为CN 104021088 A的中国专利提出了一种日志存储方法,包括:接收日志源发送的日志存储请求,所述日志存储请求包括:日志数据、包含有所述日志数据的日志的标识和日志源的IP地址;确定日志源发送日志数据的发送速率;根据日志数据的发送速率,确定包含有所述日志数据的日志的大小;根据所述日志的标识和日志源的IP地址,确定日志的存储地址;根据所述日志的大小,采用预分配的方法,在与所述存储地址对应的磁盘中为所述日志分配磁盘空间;将包含有所述日志数据的日志存储到与所述磁盘空间中。

上述方法的日志存储地址由日志源的IP地址确定,进而日志存储的磁盘也是确定的,因此当接收到日志存储请求时,将日志数据存储至已经确定好的磁盘即可。但是当环境目录没有权限或网络故障时,就会无法记录日志,导致后续遇到问题难以排查。



技术实现要素:

本发明所要解决的技术问题是:提供一种能够根据运行环境和实际存储空间自动调节存储位置和存储方式的日志记录方法及日志记录器。

为了解决上述技术问题,本发明采用的技术方案为:

一种日志记录方法,包括:

在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;

设置所述磁盘的优先级;

依据所述优先级将日志数据写入磁盘。

本发明提供的另一个技术方案为:

一种对应上述日志记录方法的日志记录器,包括:

磁盘预设模块,用于在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;

优先级设置模块,用于设置所述磁盘的优先级;

存储模块,用于依据所述优先级将日志数据写入磁盘。

本发明的有益效果在于:通过预设多个磁盘,从而日志数据能够写入多个磁盘,通过设置磁盘的优先级,按照磁盘的优先级顺序写入日志数据,磁盘资源得到合理分配,提高了资源的利用率。本发明能够在某个磁盘无法写入该日志数据时选择其他磁盘写入,有效解决了现有技术中因运行环境和网络故障导致的日志数据无法记录的问题。

附图说明

图1为本发明实施例的日志记录方法的流程图;

图2为本发明实施例的日志记录器的结构示意图;

图3为本发明实施例一的日志记录方法的流程图;

图4为本发明实施例二的日志记录器的结构示意图。

标号说明:

1、磁盘预设模块;2、优先级设置模块;3、存储模块;31、第一写入单元;32、第二写入单元;33、第三写入单元;34、报警单元;35、判断单元;36、第四写入单元;4、获取模块;5、查询模块;6、合并模块;7、返回模块。

具体实施方式

为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。

本发明最关键的构思在于:预设多个磁盘,并设置所述磁盘的优先级,依据所述优先级将日志数据写入磁盘。

本发明涉及的技术术语解释:

请参照图1,本发明提供:

一种日志记录方法,包括:

在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;

设置所述磁盘的优先级;

依据所述优先级将日志数据写入磁盘。

进一步的,依据所述优先级将日志数据写入磁盘,进一步包括:

将日志数据写入优先级最高的磁盘;

若写入失败,则将日志数据写入下一级优先级的磁盘;

若写入失败,则将日志数据继续写入下一级优先级的磁盘,直至日志数据写入磁盘成功或所述日志数据在预设的磁盘均进行过写入操作。

从上述描述可知,按照磁盘的优先级从高到低将日志数据写入磁盘,如果优先级最高的磁盘能够写入该日志数据,则直接将日志数据写入优先级最高的磁盘即可,如果优先级最高的磁盘写入日志数据失败,则将日志数据写入下一级优先级的磁盘,以此类推,直到日志写入数据成功,或者磁盘都进行过写入操作。这样能够使日志数据优先写入最适合的磁盘,比如一般情况下默认的写入的磁盘,如果写入失败再尝试写入别的磁盘。既能有效利用资源,又能确保日志数据写入成功。

进一步的,若所述日志数据在预设的磁盘均进行过写入操作,且若所述日志数据在预设的磁盘均写入失败,则结束写入操作,并返回错误警告。

从上述描述可知,如果日志数据在预设的磁盘均进行过写入操作,并且写入均失败,则说明该日志数据无法写入任意预设的磁盘,工作出现异常,因此返回错误警告,提醒相关用户采取应对措施。

进一步的,将日志数据写入磁盘,进一步包括:

判断要写入的磁盘的已使用空间是否大于预设值;

若是,则删除所述要写入的磁盘内的最早的日志数据,再写入所述日志数据;

若否,则直接写入所述日志数据。

从上述描述可知,每一次写入日志数据时,都要先判断磁盘能的已使用空间是否大于预设值,如果该已使用空间大于预设值,说明该磁盘剩余空间不足,需要清理出一些空间才能写入日志数据,而通过删除最早的日志数据来清理出磁盘空间,能够最大程度地保留有用数据。优选的,上述预设值为50%至80%。

进一步的,依据所述优先级将日志数据写入磁盘,之后进一步包括:

获取查询条件;

依据所述查询条件遍历预设的磁盘,得到查询数据;

合并所述查询数据;

返回合并的查询数据。

从上述描述可知,由于在不同的运行环境以及不同的工作状态下,如联网或断网的情况下,日志数据存储的磁盘可能不同,因此,用户查询日志时,先根据用户的查询条件遍历所有预设的磁盘,得到所有查询数据,合并这些查询数据即得到用户要查询的日志数据。并且经过合并处理,能够将查询数据进行有序整合,防止返回错乱数据。

请参照图2,本发明的另一个技术方案为:

一种对应上述日志记录方法的日志记录器,包括:

磁盘预设模块1,用于在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;

优先级设置模块2,用于设置所述磁盘的优先级;

存储模块3,用于依据所述优先级将日志数据写入磁盘。

进一步的,所述存储模块3包括:

第一写入单元31,用于将日志数据写入优先级最高的磁盘;

第二写入单元32,用于若第一写入单元31写入失败,则将日志数据写入下一级优先级的磁盘。

第三写入单元33,用于若第二写入单元32写入失败,则将日志数据继续写入下一级优先级的磁盘,直至日志数据写入磁盘成功或所述日志数据在预设的磁盘均进行过写入操作;

报警单元34,用于若所述日志数据在预设的磁盘均进行过写入操作,且若所述日志数据在预设的磁盘均写入失败,则结束写入操作,并返回错误警告。

从上述描述可知,存储模块通3过引入第一写入单元31、第二写入单元32以及第三写入单元33,存储模块3对第一写入单元31、第二写入单元32以及第三写入单元33进行调度,实现日志数据写入不同的磁盘。

进一步的,所述存储模块还3包括:

判断单元35,用于判断要写入的磁盘的已使用空间是否大于预设值;

第四写入单元36,用于若是,则删除所述要写入的磁盘内的最早的日志数据,再写入所述日志数据;

若否,则直接写入所述日志数据。

进一步的,还包括:

获取模块4,用于获取查询条件;

查询模块5,用于依据所述查询条件遍历预设的磁盘,得到查询数据;

合并模块6,用于合并所述查询数据;

返回模块7,用于返回合并的查询数据。

进一步的,所述日志数据包括应用程序的日志数据;在本地预设的磁盘包括系统内存、系统临时文件夹以及指定文件夹,所述指定文件夹为所述应用程序所在的文件夹;在服务器预设的磁盘包括数据库;所述磁盘的优先级从低到高依次为:系统内存、系统临时文件夹、指定文件夹和数据库。

从上述描述可知,系统内存、系统临时文件夹、指定文件夹以及数据库是最常见的日志存储磁盘,一般情况下,系统内存空间较小,因此其优先级最低,而系统临时文件夹一般还会存储系统数据,如果占用可能影响系统运行,因此其优先级也比较低,而在网络正常的情况下,优选服务器磁盘存储日志数据,因此数据库的优先级设为最高。

请参照图3,本发明的实施例一为:

一种日志记录方法,包括:

在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;所述日志数据包括应用程序的日志数据;在本地预设的磁盘包括系统内存、系统临时文件夹以及指定文件夹,所述指定文件夹为所述应用程序所在的文件夹;在服务器预设的磁盘包括数据库;

设置所述磁盘的优先级最低到高依次为:系统内存、系统临时文件夹、指定文件夹和数据库;

将日志数据写入数据库;

若日志数据写入数据库失败,则将日志数据写入指定文件夹;若日志数据写入数据库成功,则结束写入操作;

若日志数据写入指定文件夹失败,则将日志数据写入系统临时文件夹;若日志数据写入指定文件夹成功,则结束写入操作;

若日志数据写入系统临时文件夹失败,则将日志数据写入系统内存;若日志数据写入系统临时文件夹成功,则结束写入操作;

若日志数据写入系统内存失败,则结束写入操作,并返回错误警告;若日志数据写入系统内存成功,则结束写入操作;

获取查询条件;

依据所述查询条件遍历所述数据库、指定文件夹、系统临时文件夹以及系统内存,得到查询数据;

合并所述查询数据;

返回合并的查询数据。

上述过程中,每一次将日志数据写入磁盘,均包括:

判断要写入的磁盘的已使用空间是否大于预设值;所述预设值为50%至80%;

若是,则删除所述要写入的磁盘内的最早的日志数据,直至所述要写入的磁盘的已使用空间小于预设值,再将所述日志数据采用gzip压缩后写入所述要写入的磁盘;

若否,则直接将所述日志数据采用gzip压缩后写入所述要写入的磁盘。如,判断系统内存的已使用空间是否大于80%,若大于,则删除系统内存中最早的日志数据,当系统内存的已使用空间小于80%,再将该日志数据采用gzip压缩后写入系统内存。

下面是上述实施例一的一个具体应用场景:

QQ日志数据存储时,先写入服务器的数据库,写入失败时再写入本地的QQ程序安装所在的指定文件夹,若在指定文件夹也写入失败,则写入系统临时文件夹,若还是写入失败,则写入系统内存。

请参照图4,本发明的实施例二为:

一种对应上述日志记录方法的日志记录器,包括:

磁盘预设模块1,用于在本地预设至少两个的磁盘以及在服务器预设至少一个的磁盘;所述日志数据包括应用程序的日志数据;在本地预设的磁盘包括系统内存、系统临时文件夹以及指定文件夹,所述指定文件夹为所述应用程序所在的文件夹;在服务器预设的磁盘包括数据库;

优先级设置模块2,用于设置所述磁盘的优先级;所述磁盘的优先级从低到高依次为:系统内存、系统临时文件夹、指定文件夹和数据库;

存储模块3,用于依据所述优先级将日志数据写入磁盘;

获取模块4,用于获取查询条件;

查询模块5,用于依据所述查询条件遍历预设的磁盘,得到查询数据;

合并模块6,用于合并所述查询数据;

返回模块7,用于返回合并的查询数据;

所述存储模块包括:

第一写入单元31,用于将日志数据写入优先级最高的磁盘;

第二写入单元32,用于若第一写入单元31写入失败,则将日志数据写入下一级优先级的磁盘,

第三写入单元33,用于若第二写入单元32写入失败,则将日志数据继续写入下一级优先级的磁盘,直至日志数据写入磁盘成功或所述日志数据在预设的磁盘均进行过写入操作;

报警单元34,用于若所述日志数据在预设的磁盘均进行过写入操作,且若所述日志数据在预设的磁盘均写入失败,则结束写入操作,并返回错误警告;

判断单元35,用于判断要写入的磁盘的已使用空间是否大于预设值;所述预设值为50%至80%。

第四写入单元36,用于若是,则删除所述要写入的磁盘内的最早的日志数据,再写入所述日志数据;

若否,则直接写入所述日志数据。

综上所述,本发明提供的日志记录方法及日志记录器,能够解决运行环境目录没有权限或网络故障导致无法记录日志的问题,提高了系统日志记录的自适应性,提高了问题排查效率。

以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1