一种动态按时间输出日志文件的方法技术

技术编号:3818056 阅读:217 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种动态按时间输出日志文件的方法,该方法包括:定义文件命名规则,在文件名中设置包含时间信息;定义时间颗粒度,根据输出日志的大小和输出频率,定义输出日志文件的颗粒度;定义文件大小阈值,定义文件大小阈值M,每个输出的日志文件大小不能大于该值M;获得文件名和文件序列号;输出日志文件,将日志输出到日志文件中。与现有技术相比,本发明专利技术的优点包括:采用动态思想,提供了一种动态按时间输出日志文件的方法,从时间的角度描述每个日志文件,不仅提供了一种新的输出日志文件的方法,而且便于按时间快速定位日志,提高日志检索效率,为软件系统运行过程中的事件分析提供了更快的定位途径。

【技术实现步骤摘要】

本专利技术涉及输出日志文件的方法,尤其涉及。
技术介绍
在软件系统中,需要日志功能来记录软件系统运行过程中所发生的事件。目前的一些日志模块有Log4cpp、 Log4j、 Log4cxx等,这些模块提供了统一的日志输入 接口,通过一个或多个日志输出管理器将日志输出到文件、日志服务器,或数据库 等位置。这些模块中将日志输出到文件时仅提供了回滚输出日志文件的功能,即设 定每个日志文件大小的最大值M和最多可输出的日志文件个数C,按如下规则输 出日志文件(1) 输出的每个日志文件的大小不超过M;(2) 输出的日志文件的个数不大于C;(3) 每个输出的日志文件有一个序列号,序列号按其输出的先后顺序依次递 增,序列号从1开始;(4) 当某个文件输出满时(即文件大小将超过M时),若此时文件个数小于 C,则输出到一个新的日志文件,并令其序列号加l;(5) 当某个文件输出满时,若此时文件个数为C,则删除序列号为1的文件, 并每个令序列号大于1的文件的序列号减1,输出序列号为C的文件。在输出日志文件时,往往需要控制输出日志文件的时间,例如每隔一小时输出 一个日志文件,以便提高通过时间来检索日志文件的效率。回滚输出日志文件是从 每个日志文件的大小和日志文件的个数方面进行考虑,其不能满足上述需求。在这 种情况下,为了解决上述问题,提出了,经文 件检索发现,目前没有这方面的方法。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷,提供一种高效可靠的动 态按时间输出日志文件的方法。本专利技术的目的可以通过以下技术方案来实现 一种动态按时间输出日志文件的 方法,其特征在于,该方法包括(1) 定义文件命名规则,在文件名中设置包含时间信息;(2) 定义时间颗粒度,根据输出日志的大小和输出频率,定义输出日志文件 的颗粒度;(3) 定义文件大小阈值,定义文件大小阈值M,每个输出的日志文件大小不 能大于该值M;(4) 获得文件名和文件序列号;(5) 输出日志文件,将日志输出到日志文件中。 所述的获得文件名和文件序列号包括a. 根据日志文件命名规则、时间颗粒度,以及当前时间计算出当前要输出的 日志文件的文件名;b. 若当前输出的日志文件大小超过阈值M,则创建新的文件,令其序列号加1。所述的根据日志文件命名规则、时间颗粒度,以及当前时间计算出当前要输出的日志文件的文件名包括小时字符串的计算方法为ffi/c*60 + Mlfc*/c 服=-^-60分钟字符串的计算方法为上述公式中的HHC和MMC分别为当前时间的小时数和分钟数,上述HH、 MM定义为取整。所述的获取得文件序列号的方法包括 a.令当前文件的序列号为1;b.检査该文件是否存在;C.若存在,则判断该文件大小是否大于阈值M;若不存在,则创建此文件; d.若文件大小小于阈值M,则输出该文件;否则序列号增加l,并返回到b。 与现有技术相比,本专利技术的优点包括(1) 采用动态思想,提供了,从时间的 角度描述每个日志文件,不仅提供了一种新的输出日志文件的方法,而且便于按时 间快速定位日志,提高日志了检索效率,为软件系统运行过程中的事件分析提供了 更快的定位途径;(2) 结合了回滚输出日志文件中对每个文件大小进行限制的思想,有效的防 止了文件过大引起输出效率变低的可能,该方法在软件系统的日志功能方面尚数首 创。附图说明图1是本专利技术的流程图。 具体实施例方式以下结合具体实施例对本专利技术做进一步说明。如图l所示 ,该方法包括(1) 定义文件命名规则,在文件名中设置包含时间信息;(2) 定义时间颗粒度,根据输出日志的大小和输出频率,定义输出日志文件 的颗粒度;(3) 定义文件大小阈值,定义文件大小阈值M,每个输出的日志文件大小不 能大于该值M;(4) 获得文件名和文件序列号;A.根据日志文件命名规则、时间颗粒度,以及当前时间计算出当前要输出的 日志文件的文件名;小时字符串的计算方法为分钟字符串的计算方法为 MM =——^-^ * A: mod(60)上述公式中的HHC和MMC分别为当前时间的小时数和分钟数,上述HH、 MM定义为取整;所述的获取得文件序列号的方法包括a. 令当前文件的序列号为l;b. 检査该文件是否存在;C.若存在,则判断该文件大小是否大于闽值M;若不存在,则创建此文件; d.若文件大小小于阈值M,则输出该文件;否则序列号增加l,并返回到b; B.若当前输出的日志文件大小超过阈值M,则创建新的文件,令其序列号加1;(5)输出日志文件,将日志输出到日志文件中。 实施例1(1) 定义文件命名规则。日志文件名中含有时间信息,设其格式为 YYYYMMDDHHMM,例如2009年1月1日1时1分的格式为200901010101; 文件名中前缀和后缀字符串分别记作PRE和APP;文件名中的序列号记作SEQ。 设文件名格式为PRE||YYYYMMDDHHMMSS||SEQ||APP,其中||为传统的二进制字 符串连接符;(2) 定义时间颗粒度。设每隔k分钟创建新的日志文件,其中0<1^1440,即 创建文件的周期不超过一天,若k〉1440,对本方法进行扩展即可;(3) 定义文件大小阈值。设日志文件大小阈值为M,其中MX);(4) 获得文件名。首先,根据当前时间和所定义的时间颗粒度计算出文件名 中的时间字符串,具体计算方法如下-7J7/c*60 + MMc*/i:服=-^- (1)60MM =——^-^*A:mod(60) (2)公式(1)和(2)中的HHC和MMC分别为当前时间的小时和分钟数,其除 法这里定义为取整。假设当前时间为13点49分,当时间颗粒度k-5时,HH=13,MM=45;当时间颗粒度k420时,HH=12, MM=0。 文件名中的序列号计算流程如下 令当前文件的序列号为1; 检査该文件是否存在;若存在,则判断该文件大小是否大于阈值M;若不存在,则创建此文件; 若文件大小小于阈值M,则输出该文件,否则序列号增加l,返回到b)。 (5)输出日志文件。将日志输出到日志文件中。权利要求1.,其特征在于,该方法包括(1)定义文件命名规则,在文件名中设置包含时间信息;(2)定义时间颗粒度,根据输出日志的大小和输出频率,定义输出日志文件的颗粒度;(3)定义文件大小阈值,定义文件大小阈值M,每个输出的日志文件大小不能大于该值M;(4)获得文件名和文件序列号;(5)输出日志文件,将日志输出到日志文件中。2. 根据权利要求l所述的,其特征在于, 所述的获得文件名和文件序列号包括a. 根据日志文件命名规则、时间颗粒度,以及当前时间计算出当前要输出的 曰志文件的文件名;b. 若当前输出的日志文件大小超过阈值M,则创建新的文件,令其序列号加1。3. 根据权利要求2所述的,其特征在于,所述的根据日志文件命名规则、时间颗粒度,以及当前时间计算出当前要输出的日志文件的文件名包括小时字符串的计算方法为服c承60+ MMC服=-^-60分钟字符串的计算方法为 層=叫*60 +層"^0《60)上述公式中的HHC和MMC分别为当前时间的小时数和分钟数,上述HH、 MM定义为取整。4. 根据权利要求l所述的,其特征在于, 所述的获取得文件序列号的方法包括a. 令当前文件的序列号为1;b. 检査该文件是否存在;本文档来自技高网...

【技术保护点】
一种动态按时间输出日志文件的方法,其特征在于,该方法包括: (1)定义文件命名规则,在文件名中设置包含时间信息; (2)定义时间颗粒度,根据输出日志的大小和输出频率,定义输出日志文件的颗粒度; (3)定义文件大小阈值,定义 文件大小阈值M,每个输出的日志文件大小不能大于该值M; (4)获得文件名和文件序列号; (5)输出日志文件,将日志输出到日志文件中。

【技术特征摘要】

【专利技术属性】
技术研发人员:郝黎明
申请(专利权)人:卡斯柯信号有限公司
类型:发明
国别省市:31[]

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

1