我已将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
这里timestamp
只有秒分辨率。我想知道如何配置rsyslog
才能同时显示毫秒?
答案1
默认情况下,rsyslog
使用传统时间戳,其date
命令格式为:
%b %d %H:%M:%S
这是通过以下行启用的/etc/rsyslog.conf
:
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
要启用高精度时间戳,请注释掉以下行:
# $ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
这将以rsyslog
RFC 3339 格式制作时间戳。
可以使用以下命令模拟RFC 3339格式date
:
% date '+%Y-%m-%dT%H:%M:%S.%6N%:z'
2016-06-05T18:27:58.721607+06:00
或者更短一点:
% date '+%FT%T.%6N%:z'
2016-06-05T18:29:32.569776+06:00
或者使用本机--rfc-3399
选项:
% date --rfc-3339=ns
2016-06-05 18:31:50.897557592+06:00
答案2
在 中/etc/rsyslog.conf
,替换
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat
和:
$template CustomFormat,"%timegenerated:1:10:date-rfc3339% %timegenerated:12:24:date-rfc3339% %syslogtag%%msg%\n"
$ActionFileDefaultTemplate CustomFormat
现在,如果你logger test && tail -1 /var/log/syslog
,你会得到:
2020-08-10 18:28:49.5397 user: test