一种流输出的过滤方法及系统技术方案

技术编号:19219425 阅读:34 留言:0更新日期:2018-10-20 08:05
本发明专利技术公开了一种流输出的过滤方法及系统,涉及通信技术领域。本方法包括以下步骤:将需要流输出的模块的过滤分级信息写入该模块的存储单元中;模块运行时,从存储单元中提取过滤分级信息,对运行信息进行过滤后输出。本发明专利技术将过滤分级信息分布式存储在模块本地的存储单元中,模块运行时从存储单元中获取过滤分级信息,在多任务/多CPU的并发系统中,在多个模块分布在不同的线程/任务的情况下,无需线程间的通信和保护,避免对共享数据区域的锁保护和串行化访问,实现了高并发性,有效地提高了过滤效率。

【技术实现步骤摘要】
一种流输出的过滤方法及系统
本专利技术涉及通信
,具体是涉及一种流输出的过滤方法及系统。
技术介绍
通信设备在运行过程中需要实时记录运行状态、出错信息和操作历史等信息并输出到日志文件里,这些信息通常都是按照通信设备的软件的各个模块和输出信息的级别进行分类,再以二进制流的形式输出到日志文件或其他设备(显示屏幕等),便于之后对这些信息进行过滤和输出,以获得所需要的信息。目前,流输出的过滤条件、需要输出信息的模块和输出信息的级别等信息均采用集中式存储。通信设备的应用软件的各个模块和组件进行流输出时,需根据模块输出信息在全局数据区域进行模块检索以获取该模块相应的过滤条件和输出信息的级别。由于软件的各个模块可能会运行在不同的线程或任务上,不同线程或任务访问全局数据区域时必须有锁保护,而且在集中存贮区域检索并获取模块的过滤信息,造成模块检索的串行化,大大降低了流输出的过滤效率,无法充分发挥多任务/多中央处理器CPU系统的并发性优势。
技术实现思路
针对现有技术中存在的缺陷,本专利技术的目的在于提供一种流输出的过滤方法及系统,将过滤分级信息分布式存储在模块本地的存储单元中,模块运行时从存储单元中获取过滤分级信息,在多任务/多CPU的并发系统中,在多个模块分布在不同的线程/任务的情况下,无需线程间的通信和保护,避免对共享数据区域的锁保护和串行化访问,实现了高并发性,有效地提高了过滤效率。本专利技术提供一种流输出的过滤方法,其包括以下步骤:将需要流输出的模块的过滤分级信息写入该模块的存储单元中;模块运行时,从所述存储单元中提取所述过滤分级信息,对运行信息进行过滤后输出。在上述技术方案的基础上,所述存储单元属于模块的数据结构体,所述数据结构体包括模块ID。在上述技术方案的基础上,根据所述模块ID查找到对应的模块后,从所述数据结构体中获取所述存储单元,将配置给该模块的所述过滤分级信息写入所述存储单元。在上述技术方案的基础上,所述过滤分级信息包括从高到低的多个日志级别,其中的一个日志级别为过滤级别。在上述技术方案的基础上,模块运行时调用流输出接口,从所述存储单元获取所述过滤分级信息;根据所述过滤分级信息对所述运行信息进行分级,并输出分级达到所述过滤级别以上的所述运行信息。在上述技术方案的基础上,根据所述过滤分级信息对所述运行信息进行分级包括:从所述流输出接口获取运行信息的用户设定级别;判断所述用户设定级别是否与一个所述日志级别相同,若是,不作处理;若否,作出不合法提示告警,并将所述用户设定级别修改为默认日志级别,默认日志级别为一个所述日志级别。本专利技术还提供一种流输出的过滤系统,用于应用软件,应用软件包括至少一个模块,所述系统包括:配置单元,用于将需要流输出的模块的过滤分级信息配置到该模块的存储单元中;存储单元,其设于每个模块中,用于存储配置的过滤分级信息;处理单元,其设于每个模块中,用于在模块运行时,从所述存储单元中提取所述过滤分级信息,对运行信息进行过滤后输出。在上述技术方案的基础上,所述存储单元属于模块的数据结构体,所述数据结构体包括模块ID。在上述技术方案的基础上,所述配置单元用于根据所述模块ID查找到对应的模块后,从所述数据结构体中获取所述存储单元,将配置给该模块的所述过滤分级信息赋值到所述存储单元。在上述技术方案的基础上,所述过滤分级信息包括从高到低的多个日志级别,其中的一个日志级别为过滤级别。在上述技术方案的基础上,所述处理单元用于在模块运行时,从所述存储单元获取所述过滤分级信息;以及,根据所述过滤分级信息对所述运行信息进行分级,并输出分级达到所述过滤级别以上的所述运行信息。与现有技术相比,本专利技术的优点如下:(1)将过滤分级信息分布式存储在模块本地的存储单元中,模块运行时从存储单元中获取过滤分级信息,在多任务/多CPU的并发系统中,在多个模块分布在不同的线程/任务的情况下,无需线程间的通信和保护,避免对共享数据区域的锁保护和串行化访问,实现了高并发性,有效地提高了过滤效率。(2)存储单元属于模块的数据结构体,模块访问存储单元时,不需要锁保护/信号量互斥等线程/任务间的通信手段和开销。附图说明图1是应用软件的示意图;图2是本专利技术第一实施例流输出的过滤方法流程图;图3是本专利技术第二实施例流输出的过滤方法中,步骤S210的具体流程图;图4是本专利技术第四实施例流输出的过滤方法中,步骤S420的具体流程图;图5是本专利技术第五实施例流输出的过滤系统示意图。具体实施方式下面结合附图及具体实施例对本专利技术作进一步的详细描述。本专利技术第一实施例提供一种流输出的过滤方法,用于应用软件,例如路由器,交换机,光线路终端等通信设备的应用软件,参见图1所示,应用软件包括n个模块,n≥1,n个模块运行在不同的线程上。参见图2所示,本过滤方法包括以下步骤:S110.将需要流输出的模块的过滤分级信息写入该模块的存储单元中。S120.模块运行时,从所存储单元中提取过滤分级信息,对模块的运行信息进行过滤后输出。运行信息包括记录设备或软件运行的状态变化、故障、调试和操作历史等信息。通常通信设备的软件均通过分级、分模块的日志来记录和获取设备运行过程中的故障、状态、调试等信息以供监测。将过滤分级信息分布式存储在模块本地的存储单元中,模块运行时从存储单元中获取过滤分级信息,在多任务/多CPU的并发系统中,在多个模块分布在不同的线程/任务的情况下,无需线程间的通信和保护,避免对共享数据区域的锁保护和串行化访问,实现了高并发性,有效地提高了过滤效率。本专利技术第二实施例提供一种流输出的过滤方法,应用软件包括n个模块,n≥1,n个模块运行在不同的线程上。本过滤方法包括以下步骤:S210.将需要流输出的模块的过滤分级信息写入该模块的存储单元中。具体的,存储单元属于模块的数据结构体,数据结构体包括模块ID。模块访问本地数据结构体中的存储单元时,不需要锁保护/信号量互斥等线程/任务间的通信手段和开销。根据模块ID查找到对应的模块后,从数据结构体中获取存储单元,将配置给该模块的过滤分级信息写入存储单元。步骤S210的具体步骤参见图3所示:S211.根据模块ID查找对应的模块。S212.判断模块是否存在,若是,进入S213;若否,结束。S213.从数据结构体中获取存储单元,配置给该模块的过滤分级信息写入存储单元。S220.模块运行时,从存储单元中提取过滤分级信息,对模块的运行信息进行过滤后输出。本专利技术第三实施例提供一种流输出的过滤方法,应用软件包括n个模块,n≥1,n个模块运行在不同的线程上。本过滤方法包括以下步骤:S310.将需要流输出的模块的过滤分级信息写入该模块的存储单元中。具体的,存储单元属于模块的数据结构体,数据结构体包括模块ID。模块访问本地数据结构体中的存储单元时,不需要锁保护/信号量互斥等线程/任务间的通信手段和开销。根据模块ID查找到对应的模块后,从数据结构体中获取存储单元,将配置给该模块的过滤分级信息写入存储单元。具体的,过滤分级信息包括从高到低的多个日志级别,其中的一个日志级别为过滤级别。对于通信设备的应用软件来说,按日志级别来区分和控制输出的运行信息的严重程度,例如,日志级别包括致命错误(FATAL)、严重错误(ERROR)、告警(WARN)、审计(AUDIT本文档来自技高网...

【技术保护点】
1.一种流输出的过滤方法,其特征在于,其包括以下步骤:将需要流输出的模块的过滤分级信息写入该模块的存储单元中;模块运行时,从所述存储单元中提取所述过滤分级信息,对运行信息进行过滤后输出。

【技术特征摘要】
1.一种流输出的过滤方法,其特征在于,其包括以下步骤:将需要流输出的模块的过滤分级信息写入该模块的存储单元中;模块运行时,从所述存储单元中提取所述过滤分级信息,对运行信息进行过滤后输出。2.如权利要求1所述的流输出的过滤方法,其特征在于:所述存储单元属于模块的数据结构体,所述数据结构体包括模块ID。3.如权利要求2所述的流输出的过滤方法,其特征在于:根据所述模块ID查找到对应的模块后,从所述数据结构体中获取所述存储单元,将配置给该模块的所述过滤分级信息写入所述存储单元。4.如权利要求2或3所述的流输出的过滤方法,其特征在于:所述过滤分级信息包括从高到低的多个日志级别,其中的一个日志级别为过滤级别。5.如权利要求4所述的流输出的过滤方法,其特征在于:模块运行时调用流输出接口,从所述存储单元获取所述过滤分级信息;根据所述过滤分级信息对所述运行信息进行分级,并输出分级达到所述过滤级别以上的所述运行信息。6.如权利要求5所述的流输出的过滤方法,其特征在于,根据所述过滤分级信息对所述运行信息进行分级包括:从所述流输出接口获取运行信息的用户设定级别;判断所述用户设定级别是否与一个所述日志级别相同,若是,不作处理;若否,作出不合法提示告警,并将所述用户设...

【专利技术属性】
技术研发人员:张驰刘应江刘程
申请(专利权)人:烽火通信科技股份有限公司
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1