一种日志系统的运行方法

文档序号:7694836阅读:73来源:国知局

专利名称::一种日志系统的运行方法
技术领域
:本发明涉及计算机
技术领域
,尤其涉及一种日志系统的运行方法。
背景技术
:在计算机软件领域,日志系统日益受到人们的重视。一个强有力的日志,可以帮助排错,观察系统运行情况。日志的两个比较重要的作用是审核和监测。日志文件能够详细记录系统每天发生的各种各样的事件,用户可以通过日志文件检査错误产生的原因。现在,有很多开源日志系统如1og4cplus,ACE的LoggingFacility等,具有线程安全、灵活、分级显示等特点,可以面向程序调试、运行、测试、和维护等全生命周期,可以选择将信息输出到屏幕、文件、系统日志(如Linux下的syslog)、甚至是远程服务器。ACE的LoggingFacility提供宏接口,虽然支持进程范围和线程范围,但不直接提供实例化类的打印接口,而是用宏来代替,虽然简单高效但用起来不够灵活,且不能用于过程级日志,即最细范围粒度为线程级;1og4cplus虽然是面向对象的,但是对日志大小,周期,个数的控制是用被动对象实现的,不够高效,且大小控制和周期控制不能并发,不够灵活。对于Linux/unix系列的8级syslog日志来讲,其不具备一一对应的特点,不便于排错;不能在进程间共享不同日志的配置;不能在进程运行时配置日志系统并使之生效;不能作为网络日志服务器存在而只能作为网络日志客户端存在;不具备挂接不同业务过程的能力;由于是第三方开源日志系统,使得其不可控且不利于维护。
发明内容本发明的目的在于提出一种日志系统的运行方法,能够增加系统的安全性,方便跟踪和排错。为达此目的,本发明采用以下技术方案-一种日志系统的运行方法,包括以下步骤A、检查所述日志系统配置,并初始化网络;B、判断是否发送syslog告警,如果是,则连接到远端服务器,并转至步骤C,如果否,则转至步骤C;C、判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,并转至步骤D,如果否,则转至步骤D;D、获得日志文件序列号;E、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并转至步骤F,如果否,则转至步骤F;F、拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存。还包括以下步骤Gl、获得线程锁,打印到文件,刷新缓冲,释放线程锁;G2、判断是否打印到屏幕,如果是,则打印到屏幕,并转至步骤G3,如果否,则转至步骤G3;G3、判断是否发送syslog告警,如果是,则发送syslog告警,并转至步骤G4,如果否,则转至步骤G4;G4、判断是否发送到远端服务器,如果是,则发送到远端服务器,并结束,如果否,则结束。还包括以下步骤Hl、判断是否需要监控并切换日志文件,如果是,则启动计时器;H2、判断日志文件是否超过指定大小或者是否超过指定日期,如果是,则切换日志文件,并转至步骤H3,如果否,则转至步骤H3;H3、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并结束,如果否,则结束。还包括以下步骤Jl、初始化共享内存的映射文件;J2、析取命令配置信息;J3、发送配置变更消息到日志系统。所述日志系统采用反应堆模型,事件多路分离和分派。采用了本发明的技术方案,支持线程级日志,利用00D的设计方法,业务中实例化日志实例,并拉起监控线程使之变为主动对象,这样即减少了调用开销,又节省了资源,支持范围细化到线程甚至过程。每个线程,甚至每个过程,均可以拥有自己的8个级别的日志并和syslog—一对应调试信息,资讯信息,提醒信息,警告信息,一般错误信息,严重错误信息,需立即处理的错误信息,核心不稳或其他紧急信息emerg。'与syslog完全兼容的日志级别,由于日志级别和syslog看齐,所以在打印日志的同时,可以把重要的信息发送到syslog,这样一者利于管理员发现问题,二者,如果要建立syslog日志服务器,可以用她做接口。从而可以利用其建立起一个网络服务器的客户端。支持可控的日志文件,文件大小可控,文件个数可控,文件生成周期可控,循环覆盖,归档备份,并且动态监控,监控周期可控。通过MMAP,可以在进程间共享不同日志的配置。通过提供专门的命令,实现进程运行时日志系统的配置工作,增加日志系统可控性。使用反应堆(Reactor)模型,可以作为网络日志服务器,具备挂接不同业务过程的能力,又可以作为网络服务器。图l是本发明具体实施方式中日志系统运行的流程图2是本发明具体实施方式中日志系统中打印接口的流程图;图3是本发明具体实施方式中日志系统中监控线程的流程图;图4是本发明具体实施方式中日志系统中共享的流程图。具体实施例方式下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。此曰志系统用0++开发,使用了00D的设计方法,接口小而全,封装性好,成员尽量为私有,并具有一定的容错性和智能性。开发简单又利于维护。曰志功能借鉴了主流的日志系统,并在此基础上简单化(去掉回调函数,词法分析,布局器),同时增加其不具备的功能(按周期备份,日志文件切换时备份,系统启动时日志备份;日志文件生成周期更加细化,分为年,月,周,日,时,分;日志级别更加细化,由普遍的5级日志细分为8级日志,并和syslog兼容;面向对象的设计方法;支持线程或者过程级日志;可以作为网络日志服务器存在;通过挂接不同业务过程,可以作为网络服务器存在),并优化配置方法(不使用磁盘配置文件而使用mmap保存并进程间共享日志配置;提供专用命令,在进程运行时配置日志系统并即时生效),使其更加实用化。图l是本发明具体实施方式中日志系统运行的流程图。如图1所示,该日志系统的运行流程包括以下步骤步骤IOI、检查日志系统配置,包括日志文件目录,名称,大小,数目,生成周期,是否备份,是否网络发送,是否发送syslog告警,是否打印到屏幕等等,并初始化网络。步骤102、判断是否发送syslog告警,如果是,则转至步骤103,如果否,则转至步骤104。步骤103、连接到远端服务器。步骤104、判断是否需要归档备份,如果是,则转至步骤105,如果否,则转至步骤106;步骤105、挂载归档备份handle并启动队列处理线程。步骤106、获得日志文件序列号。步骤107、判断是否需要备份日志文件,如果是,则转至步骤108,如果否,则转至步骤109。步骤108、加入备份消息到队列。步骤109、拉起日志监控线程,启动传输控制协议/数据报文协议(tcp/udp)接受器线程,保存对象物理地址和数据成员到共享内存(腿AP)。此流程会启动4个主动对象,包括4类线程,S卩归档备份线程,监控线程,tpc/udp分离器线程和接受器线程(包括处理器)。此流程提供统一的对外调用接口,当设置了日志配置后,调用此接口生成主动对象。以后,在此实例可见的范围内,均可以调用其公用接口打印日志。在线程中使用线程锁,保证不同线程操作同一实例时的安全性,避免多个线程操作同一个实例或者操作全局变量造成系统崩溃或者打印内容错误。通过把日志封装到一个类里,使其无论在进程里,还是线程里,甚至某个过程里,都可以拥有多个日志(通过在不同位置实例化类实例),从而避免了一个级别日志只能存在于一个进程中。曰志级别和syslog的8个级别一一对应(调试信息debug,资讯信息informational,提醒信息notice,警告信息warning,一般错误信息error,严重错误信息critical,需立即处理的错误信息alert,核心不稳或其他紧急信息emerg)。实例化日志类对象时,每个实例必须是这8个级别中的一种,每级可以实例化多个对象,每个实例拥有自己的日志文件,每个日志文件只能属于一个实例。每个AllEasyLog管理8个级别的EasyLog和MmapAttr。实例化EasyLog和MmapAttr,并通过统一接口将其对象的指针加入AllEasyLog中的指针数组中。日志级别从0-7编号,编号和指针数组的下标对应。打印日志时,由级别找到下标并最终找到EasyLog对象的指针。相同级别的EasyLog日志只能存在于一个AllEasyLog中。日志信息可以选择输出到屏幕、系统日志(如Linux下的syslog)或者远程服务器。使用"开关模式"打开或者关闭日志的输出方式。打印日志时,每个日志实例必须指定到一个不同的文件后,方可打印。图2是本发明具体实施方式中日志系统中打印接口的流程图。如图2所示,本日志系统中打印接口的流程包括以下步骤步骤201、获得线程锁,打印到文件,刷新缓冲,释放线程锁。步骤202、判断是否打印到屏幕,如果是,则转至步骤203,如果否,则转至步骤204。步骤203、打印到屏幕。步骤204、判断是否发送syslog告警,如果是,则转至步骤205,如果否,则转至步骤206。步骤205、发送syslog告警。步骤206、判断是否发送到远端服务器,如果是,则转至步骤207,如果否,则结束。步骤207、发送到远端服务器,并结束。支持可控的日志文件(如大小,个数,周期生成等)。监控线程拉起后,会隔一定时间(可设定)检査日志文件的大小,日期的变化,从而动态切换到下一个日志文件,并将老文件插入到归档备份队列中。根据是否达到文件个数限制,选择是否从第一个序号文件处循环覆盖写入。图3是本发明具体实施方式中日志系统中监控线程的流程图。如图3所示,监控线程的流程包括以下步骤步骤301、判断是否需要监控并切换日志文件,如果是,则转至步骤302。步骤302、启动计时器。步骤303、判断日志文件是否超过指定大小或者是否超过指定日期,如果是,则转至步骤304,如果否,则转至步骤305。步骤304、切换日志文件。步骤305、判断是否需要备份日志文件,如果是,则转至步骤306,如果否,则结束。步骤306、加入备份消息到队列,并结束。通过MMAP,可以在进程间共享不同日志的配置,实现进程运行时即可配置日志系统的参数并即时生效。并可打印出内存中日志系统的配置情况,以期做必要修改,使之变得更加可控。MmapAttr类用于实现EasyLog的配置管理,每个MmapAttr类拥有EasyLog类实例的指针,用户用EasyLog类实例初始化MmapAttr类,MmapAttr将EasyLog的配置信息放入共享内存,并提供按名或者按ID访问共享的配置信息,这样,其它进程如果想用此EasyLog的配置,只需find到这块内存,或者直接用mmap的磁盘文件初始化就可以了。EasyLog类包含一个消息队列,用来接收外部命令,变更系统配置或者实现某些业务。外部命令通过给EasyLog发消息,来修改EasyLog配置,并即时生效。图4是本发明具体实施方式中日志系统中共享的流程图。如图4所示,日志系统各种共享的流程包括以下步骤-步骤40K初始化共享内存的映射文件;步骤402、析取命令配置信息;步骤403、发送配置变更消息到日志系统。参照通讯软件的设计模式,此日志系统使用Reactor模型,事件多路分离和分派,并具备挂接不同业务过程的能力,不但可以作为网络日志客户端,还可以作为网络日志服务器。可以实例化多个接受器,对于每一个接受器,均可有多个不同的队列,每个队列承载的业务可以相同也可以不同,这样,在接受器的选择上(根据并发连接数),在入队时的队列选择上(根据队列内消息数)均可以做负载均衡。接受器是一个消息工厂,负责接收客户端消息并插入到处理器消息队列。IPC—socket—syn—select类实现了分离器和接受器,包含2个线程,分别用来监听tcp和udp端口,当有连接到来,tcp线程只组装一个recv包,将其插入到处理器队列中,不做recv,而将recv作为一个处理任务交给处理器,以提高连接速度。而udp线程则实现了recv操作,并将recv到的消息插入到处理器消息规列。IPC_socket—queue类实现了队列操作和tcp的recv封装,并启动处理器线程(阻塞于消息队列),填充处理器handletable。以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。权利要求1.一种日志系统的运行方法,其特征在于,包括以下步骤A、检查所述日志系统配置,并初始化网络;B、判断是否发送syslog告警,如果是,则连接到远端服务器,并转至步骤C,如果否,则转至步骤C;C、判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,并转至步骤D,如果否,则转至步骤D;D、获得日志文件序列号;E、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并转至步骤F,如果否,则转至步骤F;F、拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存。2、根据权利要求l所述的一种日志系统的运行方法,其特征在于,还包括以下步骤Gl、获得线程锁,打印到文件,刷新缓冲,释放线程锁;G2、判断是否打印到屏幕,如果是,则打印到屏幕,并转至步骤G3,如果否,则转至步骤G3;G3、判断是否发送syslog告警,如果是,则发送syslog告警,并转至步骤G4,如果否,则转至步骤G4;G4、判断是否发送到远端服务器,如果是,则发送到远端服务器,并结束,如果否,则结束。3、根据权利要求l所述的一种日志系统的运行方法,其特征在于,还包括以下步骤Hl、判断是否需要监控并切换日志文件,如果是,则启动计时器;H2、判断日志文件是否超过指定大小或者是否超过指定日期,如果是,则切换日志文件,并转至步骤H3,如果否,则转至步骤H3;H3、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并结束,如果否,则结束。4、根据权利要求l所述的一种日志系统的运行方法,其特征在于,还包括以下步骤Jl、初始化共享内存的映射文件;J2、析取命令配置信息;J3、发送配置变更消息到日志系统。5、根据权利要求l所述的一种日志系统的运行方法,其特征在于,所述日志系统采用反应堆模型,事件多路分离和分派。全文摘要本发明公开了一种日志系统的运行方法,检查所述日志系统配置,并初始化网络;判断是否发送syslog告警,如果是,则连接到远端服务器,如果否,则判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,如果否,则获得日志文件序列号;判断是否需要备份日志文件,如果是,则加入备份消息到队列,如果否,则拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存。采用了本发明的技术方案,方便监控,及时的发现错误,方便和灵活的调用方法,简单易用,利于维护,功能全面而且实用。文档编号H04L29/06GK101286888SQ20081011205公开日2008年10月15日申请日期2008年5月21日优先权日2008年5月21日发明者易何,张剑寅,王仁强,君纳,宇辛申请人:天柏宽带网络科技(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1