一种日志记录的方法及装置的制作方法

文档序号:6483662阅读:97来源:国知局

专利名称::一种日志记录的方法及装置的制作方法
技术领域
:本发明涉及软件系统
技术领域
,特别是涉及一种日志记录的方法,以及一种日志记录的装置。
背景技术
:日志(log)用来储存和记录系统运行情况和用户使用情况的详细信息,这些信息是查看系统运行状态和排查问题的主要依据。例如,某个软件中应用程序出现崩溃情况,那么我们可以从程序事件日志中找到相应的记录,从而帮助我们分析并解决问题。由于系统通常包含若干个对应完成某类功能的模块,在一个系统的曰志文件中,每条日志记录都会包含其所对应的功能模块的信息;为获得系统运行的具体情况,一般还会按用户关心程度将日志所记录的内容划分为若干级别,因而每条日志记录还会包含相应的级别信息,再加上记录的时间和记录的内容,就形成一条完整的日志记录,具体可如下表所示<table>tableseeoriginaldocumentpage4</column></row><table>以一种半导体工厂设备控制系统为例,假设所述控制系统包括Control(控制),I/O(输入/输出),Alarm(报警),Interlock(互锁),Recipe(调试)五个功能模块,日志内容从低到高分为Verbose(详细信息),Event(事件),Problem(问题),Error(错误),Fatal(致命错误)五个级别,则其日志记录的方式可包括以下步骤步骤S1、获取当前时间、模块名称、日志级别和日志内容;步骤S2、写入日志信息。基于本例所形成的一条日志记录可以为DATE/TIME:20081212/8:00;MODULE:IO;LEVEL:Error;指令写入失败。采用这种现有的日志记录,当日志量较大时,用户查询某个或某几个功能模块的运行情况,或对某个或某几个功能模块的问题排查的效率是比较低的,比如,用户需要查询在一段时间内系统调用了哪些服务,服务的调用顺序是怎样的?触发的Interlock模块有哪些?系统抛出的Alarm模块有哪些?这些Alarm模块都是采取的哪种恢复操作?在日志量较大的情况,要从系统日志繁杂的信息中查询出上述信息,显然是一个非常耗时耗力的过程。再者,为兼顾系统的通用性,现有的日志内容级別划分较多,在这种情况下,相应记录的日志信息也比较多,一些实际上没有太大价值的日志信息也会被记录下来,从而导致日志占用的存储空间较大。因此,目前需要本领域技术人员迫切解决的一个技术问题就是如何能够创新地提出一种日志记录的方法,用以在保证日志记录效率的基础上,提高用户查询日志的效率,节省日志占用的存储空间。
发明内容本发明所要解决的技术问题是提供一种日志记录的方法及装置,用以在保证日志记录效率的基础上,提高用户查询日志的效率,节省曰志占用的存储空间。为了解决上述技术问题,本发明实施例公开了一种日志记录的方法,包括获取形成日志记录的当前时间、模块信息、日志内容和日志级别;当所述日志级别满足预设的级别条件时,将所述日志记录写入日志文件中。优选的,所述日志文件根据系统的不同模块对应创建,所述将曰志记录写入日志文件的步骤为根据所述模块信息将日志记录分别写入对应模块的日志文件中。优选的,所述满足预设级别条件的情形为5预设第一级别,确定高于或等于所述第一级别的日志级别为满足条件的级别;或者,预设第二级别,确定低于或等于所述第二级别的日志级别为满足条件的级别。优选的,所述第一级别为系统允许的最低级别。优选的,所述满足预设级别条件的情形为预设级别区间,确定在所述级别区间内的日志级别为满足条件的级别。优选的,所述模块信息在模块信息配置文件中配置,所述日志级别和预设的级别条件在日志级别配置文件中配置。本发明实施例还公开了一种日志记录的装置,包括信息获取模块,用于获取形成日志记录的当前时间、模块信息、日志内容和日志级别;级别判断模块,用于判断所述日志级别是否满足预设的级别条件,若是,则触发日志写入模块;日志写入模块,用于将所述日志记录写入日志文件中。优选的,所述的装置,还包括模块日志创建模块,用于根据系统的不同模块对应创建日志文件;所述日志写入模块用于根据所述模块信息将日志记录分别写入对应模块的日志文件中。优选的,所述满足预设级别条件的情形为预设第一级别,确定高于或等于所述第一级别的日志级别为满足条件的级别;或者,预设第二级别,确定低于或等于所述第二级别的日志级别为满足条件的级别。优选的,所述第一级别为系统允许的最低级别。6优选的,所述满足预设级别条件的情形为预设级别区间,确定在所述级别区间内的日志级别为满足条件的级别。优选的,所述模块信息在模块信息配置文件中配置,所述日志级别和预设的级别条件在日志级别配置文件中配置。与现有技术相比,本发明具有以下优点首先,本发明通过预先设置日志记录所需满足的级别条件,在写入日志记录时,只有满足该级别条件的日志记录才被写入,减少了日志记录量,从而减少了日志文件占用的存储空间;并且,本发明的预设级別条件可以根据实际情况灵活配置,所以可以保证在日志文件中所储存的信息大部分是符合用户需求的、有价值的信息;这种灵活配置的方式还使得日志的管理更加灵活;在这种情况下,由于日志文件尽可能多地储存了有价值的信息,对于用户查询日志的操作而言,也有利于用户操作效率的提高。再者,本发明通过针对系统中的不同模块对应创建独立的日志文件,对于属于不同模块的日志记录分别写入其对应的日志文件中,使得用户可以在查询某个模块信息时直接定位到具体的模块文件中进行查询,从而进一步提高了用户查询日志的效率。图1是本发明的一种日志记录方法实施例1的流程图;图2是本发明的一种日志记录方法实施例2的流程图;图3是在半导体工厂设备控制软件系统中应用本发明实施例进行日志记录的步骤流程图4是本发明的一种日志记录的装置实施例1的结构框图;图5是本发明的一种日志记录的装置实施例2的结构框图。具体实施例方式为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。本发明可用于众多通用或专用的计算系统环境或配置中。例如个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。一个好的日志文件,在可以保证系统正常运行的前提下,所记录的信息不在于多,而在于有价值。而实际中的情况是,系统的日志文件会尽可能多地记录各种信息,其中包括一些级别较低的信息,如Verbose级别的信息,统统都会被记录下来。而在大部分情况下,这种级别的信息对检查系统运行问题没有太大帮助,也就是说,这种信息就属于无价值的信息。而这种无价值信息通常还占用了很大一部分存储空间,不仅如此,在日志量较大时,还将影响到用户查询日志的效率,比如用户想要知道某个功能模块为何出错,查询获得的日志信息大部分是Verbose级别的信息,而实际上出错往往是在Event级别以上的日志信息中才能反映出来。正是由于本专利的发明人注意到了这一点,因此,创新性地提出了本发明实施例的核心构思之一,即通过预先设置日志记录所需满足的级别条件,在写入日志记录时,只有满足该级别条件的日志记录才被写入,这种方式不仅可以减少日志占用的存储空间,还可以在日志文件中尽可能多地储存有价值的信息,从而提高用户查询日志的效率。参考图1,示出了本发明的一种日志记录方法实施例1的流程图,具体可以包括以下步骤步骤101、获取形成日志记录的当前时间、才莫块信息、日志内容和日志级别;步骤102、判断所述日志级别是否满足预设的级别条件,若是,则执行步骤103;否则,执行步骤104;步骤103、将所述日志记录写入日志文件中。步骤104、不写入所述日志记录。在具体实现中,所述步骤104也可以是忽略所述日志记录,还可以是删除该日志记录的相关信息,本发明对此并不加以限制。在本发明的一种优选实施例中,所述日志级别和预设的级别条件可以在配置文件中进行配置。例如,在配置文件LogLevel.config中配置日志文件所有可用的级別为Verbose,Event,Problem,Error,Fatal,并设置高于或等于Event级别为需要满足的级别条件,这个需要满足的级别条件是前述所有可用级别中的一个。系统启动后,从配置文件LogLevel.config中读取该级别条件,在形成日志记录的过程中,只有当前记录的日志级别高于或等于该Event级别的日志记录,即Event,Problem,Error,Fatal级别的日志记录才会被写入到日志文件中。换言之,在本例中,Verbose级别的日志记录将不会被写入到日志文件中。在实际中,所述预设的级别条件可以由本领域技术人员根据当前需要任意设置,以下列举几种方案来具体说明。方案一预设第一级别,确定高于或等于所述第一级别的日志级别为满足条件的级别;具体可参见上例中所示情形。优选的是,所述第一级别为系统允许的最低级别,即不影响系统运行的最低级别,如上例所示的Verbose级别。本方案可以有效减少日志文件所占用的存储空间。在实验中我们发现在所有级别的日志信息都被写入日志文件的情况下,系统每天(24小时)产生的日志文件占用存储约100MB,—个50GB的硬盘容量将在500天内被耗完;在配置了最低记录级别后,由于屏蔽了与系统运行关系不大的最低级别的信息,所以系统每天产生日志文件仅约60MB,同样50GB的容量将在833天后被耗完,和前者比4交,延长了300多天,效果十分显著。方案二预设第二级别,确定低于或等于所述第一级别的日志级别为满足条件的级别;假设日志文件所有可用的级别为Verbose,Event,Problem,Error,Fatal,设置低于或等于Error级别为需要满足的级别条件,系统启动后,从配置文件LogLevel.config中读取该级别条件,在形成日志记录的过程中,只有当前记录的日志级别低于或等于Error级别的日志记录,即Verbose,Event,Problem,Error级别的日志记录才会净皮写入到日志文件中,Fatal级别的日志记录将不会被写入到日志文件中。方案三预设级别区间,确定在所述级别区间内的日志级别为满足条件的级别。假设日志文件所有可用的级别为Verbose,Event,Problem,Error,Fatal,设置级别区间为从Event级别到Error级别为需要满足的级別条件,系统启动后,从配置文件LogLevel.config中读取该级别条件,在形成日志记录的过程中,只有当前记录的日志级别为区间内的Event,Problem,Error级别,本条日志记录才会被写入到日志文件中,区间外的Verbose级别和Fatal级别的日志记录将不会被写入到日志文件中。本实施例正是通过这样一种灵活配置的方式,不仅减小了日志文件占用的存储空间,还使得日志的管理更加灵活,从而保证在日志文件中所储存的信息大部分是有价值的信息,对于用户查询日志的操作而言,也有利于用户操作效率的提高。当然,本领域技术人员根据实际情况任意配置所述日志级别和预设级别条件都是可行的,上述方式仅仅用作示例,本发明对此无需作出限定。在具体实现中,日志记录的写入可以由独立线程实现,该线程可在系统启动时创建,并在系统运行过程中一直存在。该线程维护一个曰志记录队列,系统把欲记录的日志信息放入此队列,由线程体从所述日志记录队列取出相关信息,然后执行将记录写入日志文件的操作。参考图2,示出了本发明的一种日志记录方法实施例2的流程图,具体可以包括以下步骤步骤201、根据系统的不同模块对应创建日志文件;步骤202、获取形成日志记录的当前时间、模块信息、日志内容和曰志级别;步骤203、判断所述日志级别是否满足预设的级别条件,若是,贝'J执行步骤204;否则,执行步骤205;步骤204、根据所述模块信息将日志记录分别写入相应模块的日志文件中。步骤205、不写入所述日志记录。本专利的发明人还注意到,日志的记录方式会在很大程度上影响用户对所关注信息的获取。一种格式明晰的日志记录方式能让用户快速定位其所关注的信息,而杂乱无章的记录格式则会让用户花费很多时间,从而降低用户的工作效率。为建立一种格式明晰的日志记录方式,本实施例的日志记录方式要求每个模块具有自己独立的日志文件,使得用户可以在查询某个模块信息时直接定位到具体的模块文件中进行查询,从而进一步提高了用户查询日志的效率。在本发明的一种优选实施例中,所述模块信息也可以预先在配置文件中进行配置。例如,在模块配置文件module.config中配置当前系统包含的各个功能模块的信息,如模块名,然后按照所述不同的模块对应创建不同的日志文件,将满足预设级别条件的日志记录写入对应模块的日志文件中。例如,系统中包含Control,10,Alarm,Interlock,Recipe五个功ii能模块,以模块名作为日志文件名,以'.log,为文件后缀,创建5个曰志文件为Control.log,IO.log,Alarm.log,Interlock.log,Recipe.log,若目前形成了一条模块信息为Control且满足预设级别条件的日志记录,则将这条记录写入Control.log中。为使本领域技术人员更好地理解本发明,以下参照图3通过一个在半导体工厂设备控制软件系统中应用本发明实施例的具体例子来进一步说明。假设这个半导体工厂设备控制软件系统包括Control(控制),IO(输入输出),Alarm(报警),Interlock(互锁),Recipe(调试)五个功能模块,日志内容严重性从低到高分为Verbose(详细信息),Event(事件),Problem(问题),Error(错误),Fatal(致命错误)五个级别。应用本发明实施例,配置当前系统的模块信息配置文件和日志级别配置文件,具体可以在所述模块信息配置文件中,配置当前系统中包含的模块名,如Control,IO,Alarm,Interlock,Recipe,系统,接照所述不同的功能才莫块创建不同的曰志文4牛,即Control.log,IO.log,Alarm.log,Interlock.log,Recipe.log。并且,可以在所述日志级别配置文件中配置日志文件所有可用的严重程度级别Verbose,Event,Problem,Error,Fatal。步骤31、打开日志级別配置文件读取日志级别信息,并设置需要满足的级别条件,如设置当前所能记录的最低级别Verbose;步骤32、启动日志记录线程,执行以下子步骤子步骤321、获取形成日志记录的当前时间、模块信息、日志内容和日志级别;子步骤322、判断所述日志级别是否满足预设的级别条件,若是,则执行子步骤323;否则执行子步骤333,结束日志记录;子步骤323、判断所述模块信息是否指向Control模块,若是,则执行子步骤324,将所述日志记录写入日志文件Control.log中;否则执行子步骤325;子步骤325、判断所述模块信息是否指向IO模块,若是,则执行子步骤326,将所述日志记录写入日志文件IO.log中;否则执行子步骤327;子步骤327、判断所述模块信息是否指向Interlock模块,若是,则执行子步骤328,将所述日志记录写入日志文件Interlock.log中;否则执行子步骤329;子步骤329、判断所述模块信息是否指向Alarm模块,若是,则执行子步骤330,将所述日志记录写入日志文件Alarm.log中;否则执行子步骤331;子步骤331、判断所述模块信息是否指向Recipe模块,若是,则执4亍子步骤332,将所述曰志记录写入日志文件Recipe,log中;否则执4亍子步骤333,结束日志记录。需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。参考图4,示出了本发明的一种日志记录的装置实施例1的结构框图,具体可以包括以下模块信息获取模块401,用于获取形成日志记录的当前时间、模块信息、日志内容和日志级别;级别判断模块402,用于判断所述日志级别是否满足预设的级别条件,若是,则触发日志写入模块403;日志写入模块403,用于将所述日志记录写入日志文件中。在本发明的优选实施例中,所述满足预设级别条件的情形可以包括方案一预设第一级别,确定高于或等于所述第一级别的日志级别13为满足条件的级别;优选的,所述第一级别为系统允许的最低级别。方案二预设第二级别,确定低于或等于所述第二级别的日志级别为满足条件的级别。方案三预设级别区间,确定在所述级別区间内的日志级别为满足条件的级别。在实际中,所述模块信息、日志级别和预设的级别条件可以在配置文件中配置。例如,在所述模块信息配置文件配置模块信息为Control,10,Alarm,Interlock,Recipe;在日志级别配置文件配置日志级别为Verbose,Event,Problem,Error,Fatal。由于本实施例基本相应于图l所示的实施例,故本实施例的描述中未详尽之处,可以参见图1所示实施例中的相关说明,在此就不赘述了。参考图5,示出了本发明的一种日志记录的装置实施例2的结构框图,具体可以包括以下模块模块日志创建模块501,用于根据系统的不同模块对应创建日志文件;信息获取模块502,用于获取形成日志记录的当前时间、模块信息、日志内容和日志级别;级别判断模块503,用于判断所述日志级别是否满足预设的级别条件,若是,则触发日志写入模块504;日志写入模块504,用于根据所述模块信息将日志记录分别写入对应模块的日志文件中。由于本实施例基本相应于图2所示的实施例,故本实施例的描述中未详尽之处,可以参见图2所示实施例中的相关说明,在此就不赘述了。本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分14互相参见即可。最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。以上对本发明所提供的一种日志记录的方法及一种日志记录的装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。权利要求1、一种日志记录的方法,其特征在于,包括获取形成日志记录的当前时间、模块信息、日志内容和日志级别;当所述日志级别满足预设的级别条件时,将所述日志记录写入日志文件中。2、如权利要求1所述的方法,其特征在于,所述日志文件根据系统的不同模块对应创建,所述将日志记录写入日志文件的步骤为根据所述模块信息将日志记录分别写入对应模块的日志文件中。3、如权利要求1或2所述的方法,其特征在于,所述满足预设级别条件的情形为预设第一级别,确定高于或等于所述第一级别的日志级别为满足条件的级别;或者,预设第二级别,确定低于或等于所述第二级别的日志级别为满足条件的级别。4、如权利要求3所述的方法,其特征在于,所述第一级别为系统允许的最低级别。5、如权利要求1或2所述的方法,其特征在于,所述满足预设级别条件的情形为预设级别区间,确定在所述级别区间内的日志级别为满足条件的级别。6、如权利要求1所述的方法,其特征在于,所述模块信息在模块信息配置文件中配置,所述日志级别和预设的级别条件在日志级别配置文件中配置。7、一种日志记录的装置,其特征在于,包括信息获取模块,用于获取形成日志记录的当前时间、模块信息、日志内容和日志级别;级别判断模块,用于判断所述日志级别是否满足预设的级别条件,若是,则触发日志写入模块;日志写入模块,用于将所述日志记录写入日志文件中。8、如权利要求7所述的装置,其特征在于,还包括模块日志创建模块,用于根据系统的不同模块对应创建日志文件;所述日志写入模块用于根据所述模块信息将日志记录分别写入对应模块的日志文件中。9、如权利要求7或8所述的装置,其特征在于,所述满足预设级别条件的情形为预设第一级别,确定高于或等于所述第一级别的日志级别为满足条件的级别;或者,预设第二级别,确定低于或等于所述第二级别的日志级别为满足条件的级别。10、如权利要求9所述的装置,其特征在于,所述第一级别为系统允许的最低级别。11、如权利要求7或8所述的装置,其特征在于,所述满足预设级别条件的情形为预设级别区间,确定在所述级别区间内的日志级别为满足条件的级别。12、如权利要求8所述的装置,其特征在于,所述模块信息在模块信息配置文件中配置,所述日志级别和预"^殳的级别条件在日志级别配置文件中配置。全文摘要本发明公开了一种日志记录的方法,包括获取形成日志记录的当前时间、模块信息、日志内容和日志级别;当所述日志级别满足预设的级别条件时,将所述日志记录写入日志文件中。本发明可以在保证日志记录效率的基础上,提高用户查询日志的效率,节省日志占用的存储空间。文档编号G06F17/30GK101464908SQ20091007696公开日2009年6月24日申请日期2009年1月14日优先权日2009年1月14日发明者王永贵申请人:北京北方微电子基地设备工艺研究中心有限责任公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1