[发明专利]一种控制内核模块日志输出的方法与装置有效
申请号: | 201710611438.7 | 申请日: | 2017-07-25 |
公开(公告)号: | CN107391355B | 公开(公告)日: | 2020-08-25 |
发明(设计)人: | 安祥文 | 申请(专利权)人: | 苏州浪潮智能科技有限公司 |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 罗满 |
地址: | 215100 江苏省苏州市吴*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 控制 内核 模块 日志 输出 方法 装置 | ||
本发明实施例公开了一种控制内核模块日志输出的方法与装置,系统接收用户输入的模块名以及对应的日志级别;查找所述模块名对应的内核模块,并将所述模块名以及所述日志级别存储于内核全局对应的数组中;获取第一内核模块对应的模块名,并依据所述模块名从所述数组中查找所述模块名对应的日志级别;当目标日志的系统级别小于等于用设定的日志级别时,则说明该目标日志是用户监控系统运行状态所需要的日志,相应的,系统可以输出该目标日志。用户通过设定内核模块的日志级别,可以实现对内核模块中日志输出的动态调整。并且通过这种动态调整内核模块日志级别的方式,可以使得输出的日志更合理,更清晰,更有效。
技术领域
本发明涉及Linux内核技术领域,特别是涉及一种控制内核模块日志输出的方法与装置。
背景技术
在当今Linux服务器应用非常的广泛。有效的监控这些Linux服务器系统的运行过程非常必要,其中最有效的方式之一就是通过查看Linux系统内核模块输出的日志。
传统方式中,Linux系统内核模块输出的日志,都是沿用系统原有的机制,即通过printk打印到内核日志文件/var/log/message中。虽然Linux系统本身提供了日志的8个级别。但是这些级别的设定是针对整个Linux系统的所有内核模块,而不能针对某一个内核模块进行日志输出的控制,更不能针对某一个模块进行日志输出的动态控制。这就使得我们在查看某一内核模块的运行情况时,需要从内核日志/var/log/message文件的海量日志信息中搜寻有价值的,这是一个相当大的工作量。
如果系统的日志级别设定的不合理,即使我们经过了大量的搜寻之后,可能得到的有价值的信息微乎其微。这并不是任何一个开发者、运维者及该系统的所有使用者所期望的。
可见,如何实现动态控制内核模块中日志的输出,是本领域技术人员亟待解决的问题。
发明内容
本发明实施例的目的是提供一种控制内核模块日志输出的方法与装置,可以实现动态控制内核模块中日志的输出。
为解决上述技术问题,本发明实施例提供一种控制内核模块日志输出的方法,包括:
接收用户输入的模块名以及对应的日志级别;
查找所述模块名对应的内核模块,并将所述模块名以及所述日志级别存储于内核全局对应的数组中;
获取第一内核模块对应的模块名,并依据所述模块名从所述数组中查找所述模块名对应的日志级别;其中,所述第一内核模块为所有内核模块中的任意一个内核模块;
判断第一内核模块中目标日志的系统级别是否小于等于所述第一内核模块对应的日志级别;其中,所述目标日志为所述第一内核模块中包含的所有日志中的任意一条日志;
若是,则输出所述目标日志。
可选的,所述查找所述模块名对应的内核模块,并将所述模块名以及所述日志级别存储于内核全局对应的数组中包括:
依据所述模块名查找对应的内核模块;
将组装后的所述模块名和所述日志级别通过ioctl控制接口发送至所述内核模块;
对组装后的所述模块名和所述日志级别进行解析,并将解析后的所述模块名以及所述日志级别存储于内核全局对应的数组中。
可选的,在所述输出所述目标日志之后,还包括:
输出所述目标日志所属的内核模块的模块名。
本发明实施例还提供了一种控制内核模块日志输出的装置,包括接收单元、存储单元、查找单元、判断单元和输出单元,
所述接收单元,用于接收用户输入的模块名以及对应的日志级别;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苏州浪潮智能科技有限公司,未经苏州浪潮智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710611438.7/2.html,转载请声明来源钻瓜专利网。