当前位置: 技术问答>linux和unix
请教关于syslogd和printk的几个问题
来源: 互联网 发布时间:2016-10-11
本文导语: 现在我了解到,syslogd会根据syslog.conf里面的设置来讲内核里面的printk语句打印到指定的地方 比如/var/log/xxx. 而printk函数是这样的printk(XXX "xxxxxxxx");中间没有逗号,比如打印内核调试信息用这句:printk(KERN_DEBUG "debug message"...
现在我了解到,syslogd会根据syslog.conf里面的设置来讲内核里面的printk语句打印到指定的地方 比如/var/log/xxx.
而printk函数是这样的printk(XXX "xxxxxxxx");中间没有逗号,比如打印内核调试信息用这句:printk(KERN_DEBUG "debug message"); KERN_DEBUG是打印日志的一个级别,一共有8个级别.
现在我的计划就是在内核代码中添加一个级别,然后在内核中加入我自己的printk语句,最后通过klogd 和 syslogd打印到我指定的文件内.
我知道在kernel.h内添加一个级别,而syslogd是根据sys/syslog.h头文件定义的,也就是说还要修改这个头文件,但是这个头文件不是内核代码,是/usr/include/sys/目录下,问题是我编译内核的时候不知道这个syslogd是否也会被重新编译,或者是它要单独能重新编译,这样的话怎么编译,我找不到它的源码..
问题2,现在我就知道要修改这两个文件,可能还是不够,还需要修改哪里,请大家指教指教....
而printk函数是这样的printk(XXX "xxxxxxxx");中间没有逗号,比如打印内核调试信息用这句:printk(KERN_DEBUG "debug message"); KERN_DEBUG是打印日志的一个级别,一共有8个级别.
现在我的计划就是在内核代码中添加一个级别,然后在内核中加入我自己的printk语句,最后通过klogd 和 syslogd打印到我指定的文件内.
我知道在kernel.h内添加一个级别,而syslogd是根据sys/syslog.h头文件定义的,也就是说还要修改这个头文件,但是这个头文件不是内核代码,是/usr/include/sys/目录下,问题是我编译内核的时候不知道这个syslogd是否也会被重新编译,或者是它要单独能重新编译,这样的话怎么编译,我找不到它的源码..
问题2,现在我就知道要修改这两个文件,可能还是不够,还需要修改哪里,请大家指教指教....
|
syslogd, klogd是应用程序啊,都用于把日志写入到相应的磁盘文件里。
你编译内核当然不对重新编译这两个应用程序。
你改syslogd, klogd的源码后,重新编译它们。
你编译内核当然不对重新编译这两个应用程序。
你改syslogd, klogd的源码后,重新编译它们。
|
嗯