CN101286888B - 一种日志系统的运行方法 - Google Patents

一种日志系统的运行方法 Download PDF

Info

Publication number
CN101286888B
CN101286888B CN2008101120541A CN200810112054A CN101286888B CN 101286888 B CN101286888 B CN 101286888B CN 2008101120541 A CN2008101120541 A CN 2008101120541A CN 200810112054 A CN200810112054 A CN 200810112054A CN 101286888 B CN101286888 B CN 101286888B
Authority
CN
China
Prior art keywords
judge whether
log system
log
thread
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN2008101120541A
Other languages
English (en)
Other versions
CN101286888A (zh
Inventor
纳君
辛宇
何易
王仁强
张剑寅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Huixin Bosi Technology Co., Ltd
Original Assignee
DIGITAL VIDEO NETWORKS (BEIJING) Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by DIGITAL VIDEO NETWORKS (BEIJING) Co Ltd filed Critical DIGITAL VIDEO NETWORKS (BEIJING) Co Ltd
Priority to CN2008101120541A priority Critical patent/CN101286888B/zh
Publication of CN101286888A publication Critical patent/CN101286888A/zh
Application granted granted Critical
Publication of CN101286888B publication Critical patent/CN101286888B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种日志系统的运行方法,检查所述日志系统配置,并初始化网络;判断是否发送syslog告警,如果是,则连接到远端服务器,如果否,则判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,如果否,则获得日志文件序列号;判断是否需要备份日志文件,如果是,则加入备份消息到队列,如果否,则拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存。采用了本发明的技术方案,方便监控,及时的发现错误,方便和灵活的调用方法,简单易用,利于维护,功能全面而且实用。

Description

一种日志系统的运行方法
技术领域
本发明涉及计算机技术领域,尤其涉及一种日志系统的运行方法。
背景技术
在计算机软件领域,日志系统日益受到人们的重视。一个强有力的日志,可以帮助排错,观察系统运行情况。日志的两个比较重要的作用是:审核和监测。日志文件能够详细记录系统每天发生的各种各样的事件,用户可以通过日志文件检查错误产生的原因。
现在,有很多开源日志系统如:log4cplus,ACE的Logging Facility等,具有线程安全、灵活、分级显示等特点,可以面向程序调试、运行、测试、和维护等全生命周期,可以选择将信息输出到屏幕、文件、系统日志(如Linux下的syslog)、甚至是远程服务器。
ACE的Logging Facility提供宏接口,虽然支持进程范围和线程范围,但不直接提供实例化类的打印接口,而是用宏来代替,虽然简单高效但用起来不够灵活,且不能用于过程级日志,即最细范围粒度为线程级;log4cplus虽然是面向对象的,但是对日志大小,周期,个数的控制是用被动对象实现的,不够高效,且大小控制和周期控制不能并发,不够灵活。
对于Linux/unix系列的8级syslog日志来讲,其不具备一一对应的特点,不便于排错;不能在进程间共享不同日志的配置;不能在进程运行时配置日志系统并使之生效;不能作为网络日志服务器存在而只能作为网络日志客户端存在;不具备挂接不同业务过程的能力;由于是第三方开源日志系统,使得其不可控且不利于维护。
发明内容
本发明的目的在于提出一种日志系统的运行方法,能够增加系统的安全性,方便跟踪和排错。
为达此目的,本发明采用以下技术方案:
一种日志系统的运行方法,包括以下步骤:
A、检查所述日志系统配置,并初始化网络;
B、判断是否发送syslog告警,如果是,则连接到远端服务器,并转至步骤C,如果否,则转至步骤C;
C、判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,并转至步骤D,如果否,则转至步骤D;
D、获得日志文件序列号;
E、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并转至步骤F,如果否,则转至步骤F;
F、拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存;
所述日志系统的运行方法还包括以下步骤:
G1、获得线程锁,打印到文件,刷新缓冲,释放线程锁;
G2、判断是否打印到屏幕,如果是,则打印到屏幕,并转至步骤G3,如果否,则转至步骤G3;
G3、判断是否发送syslog告警,如果是,则发送syslog告警,并转至步骤G4,如果否,则转至步骤G4;
G4、判断是否发送到远端服务器,如果是,则发送到远端服务器,并结束,如果否,则结束;
所述日志系统的运行方法还包括以下步骤:
H1、判断是否需要监控并切换日志文件,如果是,则启动计时器;
H2、判断日志文件是否超过指定大小或者是否超过指定日期,如果是,则切换日志文件,并转至步骤H3,如果否,则转至步骤H3;
H3、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并结束,如果否,则结束。
还包括以下步骤:
J1、初始化共享内存的映射文件;
J2、析取命令配置信息;
J3、发送配置变更消息到日志系统。
所述日志系统采用反应堆模型,事件多路分离和分派。
采用了本发明的技术方案,支持线程级日志,利用OOD的设计方法,业务中实例化日志实例,并拉起监控线程使之变为主动对象,这样即减少了调用开销,又节省了资源,支持范围细化到线程甚至过程。每个线程,甚至每个过程,均可以拥有自己的8个级别的日志并和syslog一一对应:调试信息,资讯信息,提醒信息,警告信息,一般错误信息,严重错误信息,需立即处理的错误信息,核心不稳或其他紧急信息emerg。
与syslog完全兼容的日志级别,由于日志级别和syslog看齐,所以在打印日志的同时,可以把重要的信息发送到syslog,这样一者利于管理员发现问题,二者,如果要建立syslog日志服务器,可以用她做接口。从而可以利用其建立起一个网络服务器的客户端。
支持可控的日志文件,文件大小可控,文件个数可控,文件生成周期可控,循环覆盖,归档备份,并且动态监控,监控周期可控。
通过MMAP,可以在进程间共享不同日志的配置。
通过提供专门的命令,实现进程运行时日志系统的配置工作,增加日志系统可控性。
使用反应堆(Reactor)模型,可以作为网络日志服务器,具备挂接不同业务过程的能力,又可以作为网络服务器。
附图说明
图1是本发明具体实施方式中日志系统运行的流程图;
图2是本发明具体实施方式中日志系统中打印接口的流程图;
图3是本发明具体实施方式中日志系统中监控线程的流程图;
图4是本发明具体实施方式中日志系统中共享的流程图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
此日志系统用C++开发,使用了OOD的设计方法,接口小而全,封装性好,成员尽量为私有,并具有一定的容错性和智能性。开发简单又利于维护。日志功能借鉴了主流的日志系统,并在此基础上简单化(去掉回调函数,词法分析,布局器),同时增加其不具备的功能(按周期备份,日志文件切换时备份,系统启动时日志备份;日志文件生成周期更加细化,分为年,月,周,日,时,分;日志级别更加细化,由普遍的5级日志细分为8级日志,并和syslog兼容;面向对象的设计方法;支持线程或者过程级日志;可以作为网络日志服务器存在;通过挂接不同业务过程,可以作为网络服务器存在),并优化配置方法(不使用磁盘配置文件而使用mmap保存并进程间共享日志配置;提供专用命令,在进程运行时配置日志系统并即时生效),使其更加实用化。
图1是本发明具体实施方式中日志系统运行的流程图。如图1所示,该日志系统的运行流程包括以下步骤:
步骤101、检查日志系统配置,包括日志文件目录,名称,大小,数目,生成周期,是否备份,是否网络发送,是否发送syslog告警,是否打印到屏幕等等,并初始化网络。
步骤102、判断是否发送syslog告警,如果是,则转至步骤103,如果否,则转至步骤104。
步骤103、连接到远端服务器。
步骤104、判断是否需要归档备份,如果是,则转至步骤105,如果否,则转至步骤106;
步骤105、挂载归档备份handle并启动队列处理线程。
步骤106、获得日志文件序列号。
步骤107、判断是否需要备份日志文件,如果是,则转至步骤108,如果否,则转至步骤109。
步骤108、加入备份消息到队列。
步骤109、拉起日志监控线程,启动传输控制协议/数据报文协议(tcp/udp)接受器线程,保存对象物理地址和数据成员到共享内存(MMAP)。
此流程会启动4个主动对象,包括4类线程,即:归档备份线程,监控线程,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的配置,只需fi nd到这块内存,或者直接用mmap的磁盘文件初始化就可以了。EasyLog类包含一个消息队列,用来接收外部命令,变更系统配置或者实现某些业务。外部命令通过给EasyLog发消息,来修改EasyLog配置,并即时生效。图4是本发明具体实施方式中日志系统中共享的流程图。如图4所示,日志系统各种共享的流程包括以下步骤:
步骤401、初始化共享内存的映射文件;
步骤402、析取命令配置信息;
步骤403、发送配置变更消息到日志系统。
参照通讯软件的设计模式,此日志系统使用Reactor模型,事件多路分离和分派,并具备挂接不同业务过程的能力,不但可以作为网络日志客户端,还可以作为网络日志服务器。可以实例化多个接受器,对于每一个接受器,均可有多个不同的队列,每个队列承载的业务可以相同也可以不同,这样,在接受器的选择上(根据并发连接数),在入队时的队列选择上(根据队列内消息数)均可以做负载均衡。接受器是一个消息工厂,负责接收客户端消息并插入到处理器消息队列。IPC_socket_syn_select类实现了分离器和接受器,包含2个线程,分别用来监听tcp和udp端口,当有连接到来,tcp线程只组装一个recv包,将其插入到处理器队列中,不做recv,而将recv作为一个处理任务交给处理器,以提高连接速度。而udp线程则实现了recv操作,并将recv到的消息插入到处理器消息规列。IPC_socket_queue类实现了队列操作和tcp的recv封装,并启动处理器线程(阻塞于消息队列),填充处理器handletable。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉该技术的人在本发明所揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (3)

1.一种日志系统的运行方法,其特征在于,包括以下步骤:
A、检查所述日志系统配置,并初始化网络;
B、判断是否发送syslog告警,如果是,则连接到远端服务器,并转至步骤C,如果否,则转至步骤C;
C、判断是否需要归档备份,如果是,则挂载归档备份handle并启动队列处理线程,并转至步骤D,如果否,则转至步骤D;
D、获得日志文件序列号;
E、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并转至步骤F,如果否,则转至步骤F;
F、拉起日志监控线程,启动传输控制协议/数据报文协议接受器线程,保存对象物理地址和数据成员到共享内存;
所述日志系统的运行方法还包括以下步骤:
G1、获得线程锁,打印到文件,刷新缓冲,释放线程锁;
G2、判断是否打印到屏幕,如果是,则打印到屏幕,并转至步骤G3,如果否,则转至步骤G3;
G3、判断是否发送syslog告警,如果是,则发送syslog告警,并转至步骤G4,如果否,则转至步骤G4;
G4、判断是否发送到远端服务器,如果是,则发送到远端服务器,并结束,如果否,则结束;
所述日志系统的运行方法还包括以下步骤:
H1、判断是否需要监控并切换日志文件,如果是,则启动计时器;
H2、判断日志文件是否超过指定大小或者是否超过指定日期,如果是,则切换日志文件,并转至步骤H3,如果否,则转至步骤H3;
H3、判断是否需要备份日志文件,如果是,则加入备份消息到队列,并结束,如果否,则结束。
2.根据权利要求1所述的一种日志系统的运行方法,其特征在于,还包括以下步骤:
J1、初始化共享内存的映射文件;
J2、析取命令配置信息;
J3、发送配置变更消息到日志系统。
3.根据权利要求1所述的一种日志系统的运行方法,其特征在于,所述日志系统采用反应堆模型,事件多路分离和分派。
CN2008101120541A 2008-05-21 2008-05-21 一种日志系统的运行方法 Expired - Fee Related CN101286888B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2008101120541A CN101286888B (zh) 2008-05-21 2008-05-21 一种日志系统的运行方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101120541A CN101286888B (zh) 2008-05-21 2008-05-21 一种日志系统的运行方法

Publications (2)

Publication Number Publication Date
CN101286888A CN101286888A (zh) 2008-10-15
CN101286888B true CN101286888B (zh) 2010-08-11

Family

ID=40058869

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101120541A Expired - Fee Related CN101286888B (zh) 2008-05-21 2008-05-21 一种日志系统的运行方法

Country Status (1)

Country Link
CN (1) CN101286888B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515246B (zh) * 2008-12-29 2012-05-30 卡斯柯信号有限公司 Its自动列车监控系统的多级日志消息处理方法
CN102195795B (zh) * 2010-03-19 2014-03-12 Tcl集团股份有限公司 智能小区日志系统及其日志记录方法
CN102185758A (zh) * 2011-04-08 2011-09-14 南京邮电大学 一种基于阿瑞斯报文特征字的协议识别方法
CN103309873B (zh) * 2012-03-09 2018-06-12 阿里巴巴集团控股有限公司 数据的处理方法、装置及系统
CN104539631A (zh) * 2015-01-20 2015-04-22 成都市酷岳科技有限公司 一种信息交换及高速传输的实现方法及其模块
CN105553743B (zh) * 2015-12-30 2019-07-02 北京神州绿盟信息安全科技股份有限公司 获得日志的方法、系统、第一网络设备及第三网络设备
CN106407429A (zh) * 2016-09-27 2017-02-15 国家电网公司 文件追踪方法、装置及系统
CN106357454B (zh) * 2016-10-08 2020-06-16 武汉斗鱼网络科技有限公司 日志系统控制装置及其控制方法
CN109240844B (zh) * 2018-08-20 2022-03-22 成都国科微电子有限公司 一种日志获取方法及系统
CN111581171A (zh) * 2020-04-30 2020-08-25 中国工商银行股份有限公司 日志处理方法、装置、计算设备和介质
CN111930686B (zh) * 2020-07-15 2024-02-20 杭州海康威视系统技术有限公司 存储日志的方法、装置和计算机设备
CN111680010B (zh) * 2020-08-14 2020-12-22 北京东方通软件有限公司 适用于JavaEE应用服务器的日志系统的设计方法
CN114265637A (zh) * 2021-12-24 2022-04-01 中电信数智科技有限公司 档案管理系统配置方法、系统、电子设备以及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1412978A (zh) * 2001-10-19 2003-04-23 上海贝尔有限公司 用于数字数据网接入模块的管理指配控件及其控制方法
CN1536788A (zh) * 2003-04-11 2004-10-13 华为技术有限公司 日志保留系统和方法
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1412978A (zh) * 2001-10-19 2003-04-23 上海贝尔有限公司 用于数字数据网接入模块的管理指配控件及其控制方法
CN1536788A (zh) * 2003-04-11 2004-10-13 华为技术有限公司 日志保留系统和方法
CN101087210A (zh) * 2007-05-22 2007-12-12 网御神州科技(北京)有限公司 高性能的Syslog日志处理和存储方法

Also Published As

Publication number Publication date
CN101286888A (zh) 2008-10-15

Similar Documents

Publication Publication Date Title
CN101286888B (zh) 一种日志系统的运行方法
WO2023142054A1 (zh) 一种面向容器微服务的性能监控告警方法及告警系统
CN103152414B (zh) 一种基于云计算的高可用系统
US8868601B2 (en) Distributed file system logging
CN101277304B (zh) 基于规则的Web服务运行环境管理系统及管理方法
CN105959151A (zh) 一种高可用的流式处理系统及方法
US20110145383A1 (en) Enterprise management system
EP2341437A2 (en) Monitoring and tracking application usage
EP2324406B1 (en) Method and apparatus for monitoring the performance of a power delivery control system
CN102968457B (zh) 数据库间切换方法和系统
EP2553580B1 (en) Complex event processing system and method
Bosi et al. Enabling smart manufacturing by empowering data integration with industrial IoT support
AU1591201A (en) Systems and methods for collecting, storing, and analyzing database statistics
CN101110700A (zh) 资源管理平台中的资源管理器
US20080120399A1 (en) Direct Binary File Transfer Based Network Management System Free of Messaging, Commands and Data Format Conversions
CN105391790A (zh) 类RAC One Node的数据库高可用方法
CN102360322A (zh) 一种数据保护系统
Canal Gratia: new challenges in grid accounting
Kone High Availability Systems
US11431783B2 (en) Direct binary file transfer based network management system free of messaging, commands and data format conversions
Luo et al. A reliable CORBA-based network management system
Zhou et al. Design and Implementation of Data Service Middleware in Earthquake Precursor Instrument Platform
Eldor Storage Usage in Kafka: Challenges, Strategies, and Best Practices
Park Event correlation
Hecht et al. OFTT: a fault tolerance middleware toolkit for process monitoring and control Windows NT applications

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20081015

Assignee: Beijing Huixin Bosi Technology Co., Ltd

Assignor: Digital Video Networks (Beijing) Co., Ltd.

Contract record no.: 2012990000747

Denomination of invention: Operating method of log system

Granted publication date: 20100811

License type: Common License

Record date: 20121010

LICC Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model
ASS Succession or assignment of patent right

Owner name: TIANBAI BROADBAND NETWORK TECHNOLOGY (BEIJING) CO.

Free format text: FORMER OWNER: DVN WIDE BAND NETWORK TECHNOLOGY (BEIJING) CO., LTD.

Effective date: 20121211

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20121211

Address after: 100086, room 2, peony building, No. 1302 peony, Haidian District, Beijing, Huayuan Road

Patentee after: Beijing Huixin Bosi Technology Co., Ltd

Address before: 100086, 19 floor, block A, digital building, No. 2 South Avenue, Beijing, Haidian District, Zhongguancun

Patentee before: Digital Video Networks (Beijing) Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100811

Termination date: 20180521

CF01 Termination of patent right due to non-payment of annual fee