需求:希望在单独的某个内核模块中打印一些日志信息到固定的某个文件中去。
思路1:自己写与用户态交互的接口,写用户态的daemon,收集内核日志,写入文件。好处是可以根据自己的需要来处理日志,分门别类写入不同的文件。
A:没有必要搞这么复杂吧...-_-b
思路2:利用syslog工具,将kern.=prio的日志定向到固定的文件。可以修改内核增加log level,修改syslog增加log level的处理。无须增加facility。实现功能和1可以相同。
A: 难道kernel还得带着自己改过的syslogd?ugly...
1和2的好处在于可扩展性好,能做得很漂亮,坏处在于工作量不小,还得带着内核发布用户态的工具。
[最简版+ugly]思路3:服务器内核为了性能,一般不会打开debug,所以可以占用debug level,将某个模块的日志信息通过syslogd定向到固定的某个文件,再进行后期处理。好处是改动最少,配置syslogd时注意一下即可。坏处是扩展性差,有可能出现其他地方跳出来的垃圾日志。
不知道有没有人实现过扩展性好的模块+修改过的syslogd可以很好地实现内核日志的定制化... syslog-ng...
阅读(2321) | 评论(0) | 转发(0) |