一种基于log4j日志框架自动采集应用异常的装置及方法

文档序号:6511970阅读:203来源:国知局
一种基于log4j日志框架自动采集应用异常的装置及方法
【专利摘要】本发明涉及一种基于LOG4J日志框架自动采集应用异常的装置,包括均与所述LOG4J日志框架连接的文件存储化采集模块和内存存储化采集模块;所述文件存储化采集模块,其用于从所述LOG4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中;所述内存存储化采集模块,其用于拦截、展示和处理从所述LOG4J日志框架中输出的级别为ERROR的异常日志信息。对应该装置,本发明还涉及一种基于LOG4J日志框架自动采集应用异常的方法,其原理与上述装置相同。本发明提高了基于LOG4J的应用异常的采集速率,简化了采集过程,易于实现,解决了现有从多个日志文件中进行逐行分析存在的遗漏、低效等问题。
【专利说明】—种基于L0G4J日志框架自动采集应用异常的装置及方法
【技术领域】
[0001]本发明涉及网络【技术领域】,涉及应用异常监控领域,特别是涉及一种基于L0G4J日志框架自动采集应用异常的装置及方法。
【背景技术】
[0002]L0G4J是Apache的一个开放源代码项目,通过使用L0G4J,可以控制日志信息输送的目的地是控制台、文件、⑶I组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,能够更加细致地控制日志的生成过程。同时,上述功能可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。Log4j提供的日志级别按优先难从小到大的顺序有DEBUG(调试)、INFO、WARN (警告)和ERROR (异常)四种级别,如果设置级别为INF0,则优先级大于等于INFO级别(如:INFO、WARN、ERROR)的日志信息将可以被输出。
[0003]目前绝大多数JAVA应用在运行过程中都会采用目前成熟稳定的L0G4J日志框架来生成各种日志。一般情况下针对某应用,类的路径不同作用也不同,相应的也会打印到不同的日志文件中。现有技术的处理方式如下:
[0004]应用中配置日志文件的方式多数为INFO级别,即所有大于INFO级别的日志信息都记录进一个日志文件中。所以应用生成的各种日志文件中混杂有各种日志级别的信息,如DEBUG、INFO、ERROR。如果系统运行时疑似有问题需要通过日志查看时或需要实时监控系统是否有异常时,需要逐个日志文件逐行查看,在生产环境多数日志文件会很大,这样想要从多个、庞大的日志文件中提取出异常信息,靠人工容易漏掉,而且也很耗时,往往会因为不能及时发现异常而导致系统积压或用户投诉。
[0005]针对上述问题,本发明提供了一种基于L0G4J实现的的应用异常自动化采集装置及方法。

【发明内容】

[0006]本发明所要解决的技术问题是提供一种基于L0G4J日志框架自动采集应用异常的装置及方法,用于解决现有从多个日志文件中逐行分析应用异常存在的遗漏、低效等问题。
[0007]本发明解决上述技术问题的技术方案如下:一种基于L0G4J日志框架自动采集应用异常的装置,包括均与所述L0G4J日志框架连接的文件存储化采集模块和内存存储化采集模块;
[0008]所述文件存储化采集模块,其用于从所述L0G4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中;
[0009]所述内存存储化采集模块,其用于拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息。
[0010]在上述技术方案的基础上,本发明还可以做如下改进。[0011 ] 进一步,所述文件存储化采集模块包括依次连接的日志信息采集模块、阀门限制模块和文件记录模块;
[0012]所述日志信息采集模块,其连接所述L0G4J日志框架,用于从所述L0G4J日志框架中实时采集日志信息;
[0013]所述阀门限制模块,其用于从采集到的日志信息中提取出级别为ERROR的异常日志信息;
[0014]所述文件记录模块,其用于将采集到的异常日志信息写入指定的日志文件中。
[0015]进一步,所述内存存储化采集模块包括依次连接的L0G4J调度框架、异常拦截采集器、界面展示模块和异常处理模块;
[0016]所述L0G4J调度框架,其用于从所述L0G4J日志框架中获取日志信息;
[0017]所述异常拦截采集器,其用于拦截所述L0G4J调度框架获取级别为ERROR的异常日志信息;
[0018]所述界面展示模块,其用于从异常拦截采集器中提取级别为ERROR的异常日志信息,并展示至界面上;
[0019]所述异常处理模块,其用于对展示在界面上的日志信息进行处理。
[0020]进一步,所述内存存储化采集模块连接有memcache内存缓存容器,用于将拦截的级别为ERROR的异常日志信息输出至memcache内存缓存容器中临时存储。
[0021]基于上述自动采集应用异常的系统,本发明的技术方案还涉及一种基于L0G4J日志框架自动采集应用异常的方法,包括:从所述L0G4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中;拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息。
[0022]进一步,所述将所有级别为ERROR的异常日志信息输出至指定的日志文件中具体包括:通过所述L0G4J日志框架的配置文件,增加日志文件配置信息,在该日志文件配置信息中将日志文件记录的阀门设置为ERROR级别,再将记录的级别为ERROR的异常日志信息输出至L0G4J日志框架配置的指定日志文件中。
[0023]进一步,所述拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息具体包括:从所述L0G4J日志框架中获取日志信息,拦截其中级别为ERROR的异常日志信息,提取出拦截的级别为ERROR的异常日志信息并展示至界面上,再根据界面展示的结果处理异常信息。
[0024]进一步,拦截的级别为ERROR的异常日志信息输出至memcache内存缓存容器中临时存储。
[0025]本发明的有益效果是:本发明从L0G4J日志框架中采集日志信息,并将日志信息的阀门限制为ERROR(即异常)级别,因此ERROR级别下的异常日志被拦截,减少了记录的日志文件数量。本发明对于采集的日志文件进行文件存储化处理和内存存储化处理,文件存储化处理直接生成了日志文件,监控人员只要查看该文件即可获得应用中所有异常信息,内存存储化处理实现了异常信息的界面展示,便于监控,且监控人员可根据展示结果进行报警、通知等处理。综上,本发明提高了基于L0G4J的应用异常的采集速率,简化了采集过程,易于实现,解决了现有从多个日志文件中进行逐行分析存在的遗漏、低效等问题。【专利附图】

【附图说明】
[0026]图1为本发明所述基于L0G4J日志框架自动采集应用异常的装置的结构示意图。
[0027]附图中,各标号所代表的部件列表如下:
[0028]1、L0G4J日志框架,2、文件存储化采集模块,3、内存存储化采集模块,4、memcache内存缓存容器,21、文件采集模块,22、阀门限制模块,23、文件记录模块,24文件输出模块,31、L0G4J调度框架,32、异常拦截采集器,33、界面展示模块,34、异常处理模块。
【具体实施方式】
[0029]以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。
[0030]如图1所示,本实施例给出了一种基于L0G4J日志框架I自动采集应用异常的装置,包括均与所述L0G4J日志框架I连接的文件存储化采集模块2和内存存储化采集模块3 ;
[0031]所述文件存储化采集模块2,其用于从所述L0G4J日志框架I中实时采集日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中;
[0032]所述内存存储化采集模块3,其用于拦截、展示和处理从所述L0G4J日志框架I中输出的级别为ERROR的异常日志信息。
[0033]本实施例中,所述文件存储化采集模块2包括依次连接的日志信息采集模块21、阀门限制模块22和文件记录模块23 ;
[0034]所述日志信息采集模块21,其连接所述L0G4J日志框架1,用于从所述L0G4J日志框架I中实时采集日志信息;
[0035]所述阀门限制模块22,其用于从采集到的日志信息中提取出级别为ERROR的异常
日志信息;
[0036]所述文件记录模块23,其用于将采集到的异常日志信息写入指定的日志文件中。
[0037]并且,所述内存存储化采集模块3包括依次连接的L0G4J调度框架31、异常拦截采集器32、界面展示模块33和异常处理模块34 ;
[0038]所述L0G4J调度框架31,其用于从所述L0G4J日志框架3中获取日志信息;
[0039]所述异常拦截采集器32,其用于拦截所述L0G4J调度框架31获取的日志信息中级别为ERROR的异常日志信息;
[0040]所述界面展示模块33,其用于从异常拦截采集器32中提取级别为ERROR的异常日志信息,并展示至界面上;
[0041]所述异常处理模块34,其用于对展示在界面上的日志信息进行处理。
[0042]另外,所述内存存储化采集模块3连接有memcache内存缓存容器4,用于将拦截的级别为ERROR的日志信息输出至memcache内存缓存容器4中临时存储。
[0043]本实施例中,所述文件存储化采集模块是基于L0G4J日志框架的配置实现的,即其完全采用L0G4J具有的功能,具体为:通过配置L0G4J配置文件,增加appendeH即日志文件),并给该appender的Threshold (即日志文件记录的阀门限制)级别指定为ERROR。因此,日志文件中只会记录ERROR级别的日志,其它级别如INFO等的日志已经被阀门拦截了。将上述信息配置给所有的日志记录器进行记录,在运行过程中L0G4J会将应用中输出的级别为ERROR的日志信息输出至指定的日志文件中,监控人员只要查看该文件即可获得应用中所有异常信息。
[0044]所述内存存储化采集模块是基于L0G4J 二次开发的插件,可以植入L0G4J日志框架中使用。而目前在得到异常信息后,为防止不断增长的异常可能导致的内存溢出,故将异常存入本地的定长容器中,可以改进将其输出到MEMCACHE等第三方大容器存储,以集中处理。
[0045]基于上述自动采集应用异常的系统,本实施例同时给出了相应的实现方法,包括:从所述L0G4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的日志信息输出至指定的日志中;拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的
异常日志信息。
[0046]其中,所述将所有级别为ERROR的日志信息输出至指定的日志文件中具体包括:通过所述L0G4J日志框架的配置文件,增加日志文件配置信息,在该日志文件配置信息中将日志文件记录的阀门设置为ERROR级别,再将记录的级别为ERROR的日志信息输出至L0G4J日志框架配置的日志文件中。
[0047]所述拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息具体包括:从所述L0G4J日志框架中获取日志信息,拦截其中级别为ERROR的异常日志信息,提取出拦截的级别为ERROR的日志信息并展示至界面上,再根据界面展示的结果处理异常信息。上述过程中,拦截的级别为ERROR的异常日志信息输出至memcache内存缓存容器中临时存储。
[0048]对于上述基于L0G4J日志框架自动采集应用异常的装置及方法,其具体的实施步骤如下:
[0049]一、文件采集模块:只要在现有的L0G4J配置文件中增加配置即可。
[0050]步骤1.在log4j配置文件中增加异常APPENDER信息,如下:
[0051 ] #要将级别设置为ERROR
[0052]log4j.appender.ERROR—REPORT—APD.Threshold=ERROR
[0053]#默认釆用了滚动日志,亦可以釆用其它文件生成机制
[0054]I ο g 4 j.appender.ERR0R_REP0RT_APD = org.apache.1 o g 4 j.DailyRollingFiIeAppender
[0055]log4j.appender.ERROR—REPORT—APD.File=$ {mylog.home}/error—report, log
[0056]log4j.appender.ERROR—REPORT—APD.DatePattern='.,yyyy-MM-dd
[0057]log4j.appender.ERROR—REPORT—APD.layout=org.apache.log4j.PatternLayout
[0058]log4j.appender.ERROR—REPORT—APD.layout.ConversionPattern=%d {yyyy/MM/dd HH: mm:ss}%4r%5p%c{2}:%L-%m%n
[0059]步骤2.为所有的记录器增加异常APPENDER配置,如下:
[0060]log4j.rootLogger=INF0ERR0R_REP0RT_APD
[0061]log4j.logger, com.sitech=INF0,ERROR—REPORT—APD
[0062]二、内存釆用模块
[0063]步骤1.新建类(如:Log4jAppender4ShowPage)继承 extendsorg.apache.log4j.AppenderSkeIeton,[0064]如下:
[0065]
【权利要求】
1.一种基于L0G4J日志框架自动采集应用异常的装置,其特征在于,包括均与所述L0G4J日志框架连接的文件存储化采集模块和内存存储化采集模块; 所述文件存储化采集模块,其用于从所述L0G4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中; 所述内存存储化采集模块,其用于拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息。
2.根据权利要求1所述的装置,其特征在于,所述文件存储化采集模块包括依次连接的日志信息采集模块、阀门限制模块和文件记录模块; 所述日志信息采集模块,其连接所述L0G4J日志框架,用于从所述L0G4J日志框架中实时米集日志信息; 所述阀门限制模块,其用于从采集到的日志信息中提取出级别为ERROR的异常日志信息; 所述文件记录模块,其用于将采集到的异常日志信息写入指定的日志文件中。
3.根据权利要求1所述的装置,其特征在于,所述内存存储化采集模块包括依次连接的L0G4J调度框架、异常拦截采集器、界面展示模块和异常处理模块; 所述L0G4J调度框架,其用于从所述L0G4J日志框架中获取日志信息; 所述异常拦截采集器,其用于拦截所述L0G4J调度框架获取级别为ERROR的异常日志信息; 所述界面展示模块,其用于从异常拦截采集器中提取级别为ERROR的异常日志信息,并展示至界面上; 所述异常处理模块,其用于对展示在界面上的日志信息进行处理。
4.根据权利要求1或3所述的装置,其特征在于,所述内存存储化采集模块连接有memcache内存缓存容器,用于将拦截的级别为ERROR的异常日志信息输出至memcache内存缓存容器中临时存储。
5.一种基于L0G4J日志框架自动采集应用异常的方法,其特征在于,包括:从所述L0G4J日志框架中实时采集应用产生的日志信息,并将所有级别为ERROR的异常日志信息输出至指定的日志文件中;拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息。
6.根据权利要求5所述的方法,其特征在于,所述将所有级别为ERROR的异常日志信息输出至指定的日志文件中具体包括:通过所述L0G4J日志框架的配置文件,增加日志文件配置信息,在该日志文件配置信息中将日志文件记录的阀门设置为ERROR级别,再将记录的级别为ERROR的异常日志信息输出至L0G4J日志框架配置的指定日志文件中。
7.根据权利要求5所述的方法,其特征在于,所述拦截、展示和处理从所述L0G4J日志框架中输出的级别为ERROR的异常日志信息具体包括:从所述L0G4J日志框架中获取日志信息,拦截其中级别为ERROR的异常日志信息,提取出拦截的级别为ERROR的异常日志信息并展示至界面上,再根据界面展示的结果处理异常信息。
8.根据权利要求5或7所述的装置,其特征在于,拦截的级别为ERROR的异常日志信息输出至memcache内存缓存容器中临时存储。
【文档编号】G06F11/36GK103488558SQ201310424238
【公开日】2014年1月1日 申请日期:2013年9月17日 优先权日:2013年9月17日
【发明者】王陶林 申请人:北京思特奇信息技术股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1