有没有办法改变内核日志中时间戳的格式?
就像2012-08-27T8:54:35.939421+03:00
现在一样,我也查了一下sysctl -a | grep log
,确实没有发现。
答案1
不,请参阅 中的内核代码kernel/printk.c
,它被硬编码为:
sprintf(tbuf, "[%5lu.%06lu] ", (unsigned long) t, nanosec_rem / 1000)
您所能做的就是启用/禁用该时间戳。您可以让任何读取/proc/kmsg
(syslog、klog...)添加时间戳本身。
答案2
在
/var/log/messages
和中/var/log/syslog
,它会自动转换为 HRTS(人类可读时间戳)。用
-T
,dmesg
可以给你返回内核环的 HRTS 形式。请看一下man dmesg
。
你可以制作一个 cron 脚本来获得你真正想要的:
每一$PERIOD
秒,dmesg --ctime --read-clear >> mymessagesHRTS.log
您可能会考虑使用:(
dmesg --console-off
dmesg --ctime --decode --show-delta
参考:来自 util-linux 2.20.1 的 dmesg)
hth - 斯特凡