用于读取内核日志消息的文件描述符?

用于读取内核日志消息的文件描述符?

我使用syslogSYSLOG_ACTION_READ 来读取内核日志消息。

我想知道是否可以“获取”一个文件描述符来发送内核日志(就像 syslog 提供的那样)。事实上,我想select在我的应用程序中监视这个文件描述符(因为我已经在监视其他与 udev 相关的文件描述符)

此外,我想知道是否有配置空间(例如设置日志级别、以人类可读的形式格式化时间戳)。

如果我的部分或全部要求都无法实现,您会推荐什么样的方法?

答案1

跑去strace dmesg看看它在读什么。

# strace -e '!read,write' dmesg >/dev/null
open("/dev/kmsg", O_RDONLY|O_NONBLOCK)  = 3

没有参数可以更改格式或过滤消息,这是从该设备读取的程序的工作。

如果您正在运行 syslog,那么观察它发出的日志(您可以将其记录到管道)是有意义的,而不是直接读取内核日志。

相关内容