日志记录系统和方法

文档序号:6562183阅读:150来源:国知局
专利名称:日志记录系统和方法
技术领域
本发明涉及通信领域,尤其涉及日志记录系统和方法。
背景技术
在通信产品、计算机信息处理相关产品中,为了了解系统的运 行状态、业务处理失败时能够快速的定位失败的原因,系统在业务 处理中需要记录下关4建的流程信息、业务处理失败时的原因信息
等。日志的信息一般包括日志记录点所处的源文件名、所在源文 件中的行号、格式化字符串、动态参数等。
如果一个系统产生的日志记录数据量太大,需要占用更多的存 储空间,而且日志保存过程中还需要占用很大的处理器开销,会影 响到正常业务的运^f亍。如果系统采用分布方式记日志(多个处理节 点产生的日志通过网络连接,保存到集中的日志月良务器),那么日 志传输会占用系统内部正常的通信带宽。
为了降低日志记录的大小,也可以釆用日志的动态压缩方法 处理节点产生日志记录后,采用动态压缩算法进行压缩,将压缩后 的数据传输到日志服务器、或者保存到存储设备。
4旦是动态压缩算法如LZ77、 LZW等,一4殳都特别库毛费处理 器资源。日志动态压缩后,虽然可以降低日志记录的大小,但同时
也才及大增加了系统的处理器负载,对系统的正常业务的处理带来了 很大的影响。

发明内容
针对以上 一 个或多个问题,本发明^是供了 一种日志记录系统和 方法,大大降低了日志的容量,减少了系统的负载。
本发明的日志记录系统包括日志记录装置,用于查找源代码 中的日志记录的静态信息,为每个静态信息分配一个唯一的标识符 并形成映射关系文件,将表示静态信息的标识符和源代码执行后的 动态信息结合形成日志记录;以及日志解析装置,用于在用户查看 日志记录时,在映射关系文件中查找日志记录中的标识符对应的静 态信息,并将静态信息和动态信息结合形成完整的日志记录。
日志记录装置包括静态信息查找纟莫块,用于查找并记录日志 记录中的静态信息;映射模块,用于为静态信息分配一个唯一的标 识符,并形成记录静态信息和标识符的映射关系的映射关系文件; 以及日志记录模块,用于将表示静态信息的标识符和动态信息结合 形成日志i己录。
曰志解析装置包括静态信息搜索模块,用于在映射关系文件 中查找接收到的日志记录中的标识符对应的静态信息;以及日志解 析模块,用于将查找到的静态信息和日志记录中的动态信息结合形 成完整的日志"i己录。
曰志记录为日志打印语句。静态信息包括以下至少一种信息 曰志打印语句的源文件名、日志打印语句在源文件名中的位置、以 及格式化字符串。
本发明的日志记录方法包括以下步骤步骤一,查找源代码中 的曰志记录的静态信息,为每个静态信息分配一个唯一的标识符并 形成映射关系文件,将表示静态信息的标识符和源代码执行后的动 态信息结合形成日志记录;以及步骤二,在用户查看日志记录时, 在映射关系文件中查找日志记录中的标识符对应的静态信息,并将 静态信息和动态信息结合形成完整的日志记录。
步骤一包括步骤a,查找并记录日志记录中的静态信息;步 骤b,为静态信息分配一个唯一的标识符,并形成记录静态信息和 标识符的映射关系的映射关系文件;以及步骤c,将表示静态信息 的标识符和动态〗言息结合形成日志i己录。
步骤二包括步骤a,在用户查看日志记录时,在映射关系文 件中查找接收到的日志记录中的标识符对应的静态信息;以及步骤 b,将查找到的静态信息和日志记录中的动态信息结合形成完整的 曰志i己录。
本发明的日志记录为日志打印语句。静态信息包括以下至少一 种信息日志打印语句的源文件名、日志打印语句在源文件名中的 位置、以及格式化字符串。


此处所说明的附图用来提供对本发明的进一步理解,构成本申 请的一部分,本发明的示意性实施例及其i兌明用于解释本发明,并 不构成对本发明的不当限定。在附图中
图1是根据本发明的日志记录系统的框图2是4艮据本发明的日志记录方法的流禾呈图;以及
图3是根据本发明的实施例得日志记录方法的示意图。
具体实施例方式
下面参考附图,详细i兌明本发明的具体实施方式

本发明涉及一种基于源代码处理的日志记录系统和方法。可以 用于通信系统产品,也可以用于计算4几信息处理相关的产品。采用 该方法后,在不增加系统的处理器负栽的同时,完成日志"i己录的压 缩,极大的降低了需要传输日志记录的网络带宽、保存日志记录所 需的存储空间大小。
图1是根据本发明的日志记录系统的框图。如图l所示,本发 明的日志记录系统包括日志记录装置102,用于查找源代码中的 日志记录的静态信息,为每个静态信息分配一个唯一的标识符并形 成映射关系文件,将表示静态信息的标识符和源代码执行后的动态 信息结合形成日志记录;以及日志解析装置104,用于在用户查看 日志记录时,在映射关系文件中查找日志记录中的标识符对应的静 态信息,并将静态信息和动态信息结合形成完整的日志记录。
日志记录装置102包括静态信息查找才莫块102-2,用于查找 并记录日志记录中的静态信息;映射模块102-4,用于为静态信息 分配一个唯一的标识符,并形成记录静态信息和标识符的映射关系 的映射关系文件;以及日志记录模块102-6,用于将表示静态信息 的标识符和动态信息结合形成日志记录。
日志解析装置104包括静态信息搜索模块104-2,用于在映 射关系文件中查找接收到的日志记录中的标识符对应的静态信息; 以及日志解析模块104-4,用于将查找到的静态信息和日志记录中 的动态信息结合形成完整的日志记录。
曰志记录为日志打印语句。静态信息包括以下至少一种信息 曰志打印语句的源文件名、日志打印语句在源文件名中的位置、以 及格式化字符串。
图2是才艮据本发明的日志记录方法的流程图。如图2所示,本 发明的日志记录方法包括以下步骤步骤S202,查找源代码中的日 志记录的静态信息,为每个静态信息分配一个唯一的标识符并形成 映射关系文件,将表示静态信息的标识符和源代码执行后的动态信 息结合形成日志记录;以及步骤S204,在用户查看日志记录时,在 映射关系文件中查找日志记录中的标识符对应的静态信息,并将静 态信息和动态〗言息结合形成完整的日志i己录。
步骤S202包括步骤S202-2,查找并记录日志记录中的静态 信息;步骤S202-4,为静态信息分配一个唯一的标识符,并形成记 录静态信息和标识符的映射关系的映射关系文件;以及步骤 S202-6,将表示静态信息的标识符和动态信息结合形成日志记录。
步骤S204包括步骤S204-2,在用户查看日志记录时,在映 射关系文件中查找接收到的日志记录中的标识符对应的静态信息; 以及步骤S204-4,将查找到的静态信息和日志记录中的动态信息结 合形成完整的日志i己录。
本发明的日志记录为日志打印语句。静态信息包括以下至少一 种信息日志打印语句的源文件名、曰志打印语句在源文件名中的 ^立置、以及格式4匕字符串。
本发明的中心思想是采用源代码处理方法,将日志记录中的 静态信息与动态信息分离,在不增加处理器负栽的同时,降低日志 i己录的大小。 按照日志记录的特点,将日志记录划分成两种部分静态信息 和动态信息。日志的静态信息。包括日志打印语句所在的源文件名、 所在源文件中的位置、格式化字符串。多次执行该日志打印语句, 这部分信息不会变化;日志的动态信息。包括日志打印语句的动态 参数。多次执行该日志打印语句,这部分信息有可能会发生变化。
例如在源文件example.c中第100行有下面的日志打印语句
Syslog( "This is an example, version: %d \n,,, 3005 );
那么,曰志的静态信息为源文件名example.c、在源文件中的 4立置第100 4亍、格式4b字符串"This is an example, version: %d \n,,。
日志的动态信息为3005 (版本号)。
曰志的静态信息是静态不变的,如上面的例子所示,多次执行 该曰志打印语句后,日志中的格式化字符串、语句所在的源文件名、 语句在源文件中的位置(行号)都不会发生变化。所以在日志的传 输、存贮时,这部分信息就不需要每次都记录。使用一个ID号来 标识一条日志的静态部分、例如可以用一个4字节的ID—日志ID 来标识。在日志传输、々者存时4吏用日志ID来标识日志记录的静态 信息,将日志记录中的静态信息压缩成了 4字节,这大大降低了保 存曰志记录所需的存储空间,传输日志记录所需的传输带宽。
曰志的动态信息随着每一次日志打印语句的执行,都可能发生 变化。对于动态信息部分,每条日志记录生成时,都需要完整的保 存,这样能够完整保存日志的信息,防止出现日志信息的丟失。
为了避免日志压缩消耗很大的处理器负载,影响系统正常的业 务处理,使用源代码处理的方法来完成日志的静态信息、动态信息 的分离。源代码处理在系统运行前进行的,通过扫描所有的源文件,
为每一条日志打印语句分配一个曰志ID,建立日志的静态信息与曰 志ID的——映射关系,并将该映射关系保存在日志信息文件中。 通过上述处理,在不增加系统负载的前^是下,完成了日志的压缩。
系统运行时,生成的日志记录中包含两部分日志ID、日志的 动态信息。日志解析工具通过日志ID查找日志信息文件,得到曰 志的静态信息。将日志的静态信息、动态信息结合,就可以完整的 恢复出日志的信息。
如图3所示,1吏用源^C码处理工具,扫描处理所有源文件,为 每一条日志打印i吾句分配一个ID号,日志ID号全系统p舉一。
源代码处理工具收集每条日志打印语句的静态信息,并与曰志 ID建立一对一的映射关系,保存为单独的日志信息文件。
源文件经过编译、链接,加载到业务系统上运行后,执行日志 打印语句时不再输出静态信息,仅需要输出该语句对应的日志ID、 动态4言息。
用户查看日志时,需要对日志进行解析。对于每条日志记录, 通过日志ID,检索到日志的静态信息。将动态信息、静态信息一起 分析,得到完整的日志信息。
以上所述 <又为本发明的优选实施例而已,并不用于限制本发 明,对于本领域的技术人员来说,本发明可以有各种更改和变化。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进 等,均应包含在本发明的保护范围之内。
权利要求
1.一种日志记录系统,其特征在于,所述系统包括日志记录装置,用于查找源代码中的日志记录的静态信息,为每个静态信息分配一个唯一的标识符并形成映射关系文件,将表示所述静态信息的标识符和所述源代码执行后的动态信息结合形成日志记录;以及所述日志解析装置,用于在用户查看日志记录时,在所述映射关系文件中查找所述日志记录中的所述标识符对应的静态信息,并将所述静态信息和所述动态信息结合形成完整的日志记录。
2. 根据权利要求1所述的日志记录系统,其特征在于,所述日志 i己录装置包4舌静态信息查找模块,用于查找并记录所述日志记录中的 静态信息;映射模块,用于为所述静态信息分配一个唯一的标识符, 并形成记录所述静态信息和所述标识符的映射关系的映射关 系文4牛;以及日志记录模块,用于将表示所述静态信息的标识符和所 述动态信息结合形成日志记录。
3. 根据权利要求1所述的日志记录系统,其特征在于,所述日志 解析装置包括静态信息搜索模块,用于在所述映射关系文件中查找接 收到的日志记录中的标识符对应的静态信息;以及日志解析模块,用于将查找到的静态信息和所述日志记 录中的动态信息结合形成完整的日志记录。
4. 根据权利要求1至3中任一项所述的日志记录系统,其特征在 于,所述日志记录为日志打印语句。
5. 根据权利要求4所述的日志记录系统,其特征在于,所述静态 信息包括以下至少 一种信息所述日志打印语句的源文件名、 所述日志打印语句在所述源文件名中的位置、以及格式化字符 串。
6. —种日志记录方法,其特征在于,所述方法包括以下步骤步骤一,查找源代码中的日志记录的静态信息,为每个 静态信息分配一个唯一的标识符并形成映射关系文件,将表示 所述静态信息的标识符和所述源代码执行后的动态信息结合 形成日志"i己录;以及步骤二,在用户查看所述日志记录时,在所述映射关系 文件中查找所述日志记录中的所述标识符对应的静态信息,并 将所述静态信息和所述动态信息结合形成完整的日志记录。
7. 根据权利要求6所述的日志记录方法,其特征在于,所述步骤 一包括步骤a,查找并记录所述日志记录中的静态信息;步骤b,为所述静态信息分配一个唯一的标识符,并形成 记录所述静态信息和所述标识符的映射关系的映射关系文件; 以及步骤c,将表示所述静态信息的标识符和所述动态信息结 合形成日志记录。
8. 根据权利要求6所述的日志记录方法,其特征在于,所述步骤 二包括步骤a,在用户查看所述日志记录时,在所述映射关系文 件中查找接收到的日志记录中的标识符对应的静态信息;以及步骤b,将查找到的静态信息和所述日志记录中的动态信 息结合形成完整的日志i己录。
9. 根据权利要求6至8中任一项所述的日志记录方法,其特征在 于,所述日志记录为日志打印语句。
10. 根据权利要求9所述的日志记录方法,其特征在于,所述静态 信息包括以下至少 一种信息所述日志打印语句的源文件名、 所述日志打印语句在所述源文件名中的位置、以及格式化字符 串。
全文摘要
本发明提供了一种日志记录系统和方法,该方法包括以下步骤步骤一,查找源代码中的日志记录的静态信息,为每个静态信息分配一个唯一的标识符并形成映射关系文件,将表示静态信息的标识符和源代码执行后的动态信息结合形成日志记录;以及步骤二,在用户查看日志记录时,在映射关系文件中查找日志记录中的标识符对应的静态信息,并将静态信息和动态信息结合形成完整的日志记录。可以用于通信系统产品,也可以用于计算机信息处理相关的产品。采用该方法后,在不增加系统的处理器负载的同时,完成日志记录的压缩,极大的降低了需要传输日志记录的网络带宽、保存日志记录所需的存储空间大小。
文档编号G06F17/30GK101178709SQ200610138609
公开日2008年5月14日 申请日期2006年11月8日 优先权日2006年11月8日
发明者璞 阚, 黄文政 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1