OS X 上 syslogd 的毫秒精度

OS X 上 syslogd 的毫秒精度

当我在 OS X (10.10.1) 中将消息记录到 syslog 时,它会将时间戳截断为秒。例如,如果我将消息记录到文件中,我能够捕获毫秒。当日志快速而猛烈地涌入时,毫秒很重要。是否有办法在 OS X 的 syslogd 实现中设置毫秒精度?

答案1

OS Xsyslogd默认以微秒精度将日志事件存储在“Apple 系统日志”(asl)数据库/存储中,并提供纳秒精度。

然而,当这些数据被复制到传统的平面日志文件中时/var/log/system.log,会使用传统的精确到秒的时间戳格式,因为这些平面日志文件一直都是这样使用的。

您可以使用syslog命令行工具查询 asl 数据库,并且可以使用各种命令行选项(包括)指定输出格式-F。例如,要以标准日志文件格式(但精度为微秒)转储 asl 数据库中的所有内容,请执行以下操作:

syslog -F std.6

请注意,如果您的进程以如此快的速度将如此多的消息记录到 syslog 中,以至于亚秒级的时间戳都很重要,那么您可能还需要查看asl.conf(5)手册页,以确保您的mps_limitdup_delay参数设置方式使得所有日志消息实际上都存储在数据库中,而不是被限制或丢弃。

相关内容