如何在系统日志中包含毫秒?

Rau*_*pta 5 time log rsyslog syslog

我已将rsyslog.conf文件配置/etc为将我自己的日志syslogs包含在/var/logs.

但是打开文件后我得到了这个:

Jun 5 10:09:09 lab-Altos-G330-Mk2 slog[19689]: Hello1
Jun 5 10:09:09 lab-Altos-G330-Mk2 slog[19689]: Hello2
Run Code Online (Sandbox Code Playgroud)

在这里,timestamp只有第二个分辨率。我想知道如何配置rsyslog以显示毫秒?

hee*_*ayl 9

默认情况下,rsyslog使用传统时间戳,其date命令格式为:

%b %d %H:%M:%S
Run Code Online (Sandbox Code Playgroud)

这是通过以下行启用的/etc/rsyslog.conf

$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 
Run Code Online (Sandbox Code Playgroud)

要启用高精度时间戳,请注释掉以下行:

# $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat 
Run Code Online (Sandbox Code Playgroud)

这将以rsyslogRFC 3339 格式制作时间戳。


可以通过以下date命令模拟 RFC 3339 格式:

% date '+%Y-%m-%dT%H:%M:%S.%6N%:z'
2016-06-05T18:27:58.721607+06:00
Run Code Online (Sandbox Code Playgroud)

或者更短:

% date '+%FT%T.%6N%:z'      
2016-06-05T18:29:32.569776+06:00
Run Code Online (Sandbox Code Playgroud)

或者使用本机--rfc-3399选项:

% date --rfc-3339=ns
2016-06-05 18:31:50.897557592+06:00
Run Code Online (Sandbox Code Playgroud)