配置内核日志的时间戳格式?

配置内核日志的时间戳格式?

有没有办法改变内核日志中时间戳的格式?

就像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

  1. /var/log/messages和中/var/log/syslog,它会自动转换为 HRTS(人类可读时间戳)。

  2. -Tdmesg可以给你返回内核环的 HRTS 形式。请看一下man dmesg
    你可以制作一个 cron 脚本来获得你真正想要的:
    每一$PERIOD秒,dmesg --ctime --read-clear >> mymessagesHRTS.log

  3. 您可能会考虑使用:(
    dmesg --console-off
    dmesg --ctime --decode --show-delta
    参考:来自 util-linux 2.20.1 的 dmesg)

hth - 斯特凡

相关内容