增加 apache 日志的精度以包括毫秒
Posted
技术标签:
【中文标题】增加 apache 日志的精度以包括毫秒【英文标题】:Increase precision of apache log to include milliseconds 【发布时间】:2013-03-02 14:12:55 【问题描述】:我已修改rsyslogd
的配置以禁用RSYSLOG_TraditionalFileFormat
。
但是 apache 日志 /var/log/apache/error.log
仍然只显示第二精度。
还有什么需要配置的吗?
【问题讨论】:
ServerFault 不应该问这个问题吗? 嗯,你可能是对的,但标签在那里! 如何将其移至 ServerFault? 这是旧的,但我想指出一些今天仍然有效的东西。我在 ServerFault (serverfault.com/questions/589768/…) 遇到了这个问题和一个等效问题。在这里,据说这个问题属于 ServerFault(我倾向于同意)。然而,在 Serverfault 上,类似的问题被关闭了,因为被认为离题(完全荒谬!)。此外,人们倾向于选择 SO,因为 SF 人口不多,因此回复的机会较低。我经常看到这个。 【参考方案1】:http://httpd.apache.org/docs/current/mod/mod_log_config.html 您会看到不同的时间格式,包括毫秒 换成
%t
to
%%d/%b/%Y:%Tt-%msec_fract for miliseconds
or
%%d/%b/%Y:%Tt-%usec_fract for microsecs
示例: 2013 年 3 月 16 日:22:44:34-634 16/Mar/2013:22:44:34-634200
文档 apache
%t 接收请求的时间,格式为 [18/Sep/2011:19:18:28 -0400]。最后一个数字表示与 GMT 的时区偏移
%formatt 时间,格式由 format 给出,应该是扩展的 strftime(3) 格式(可能本地化)。如果格式以 begin: 开头:(默认)时间是在请求处理开始时所用的。如果它以 end 开头:它是日志条目被写入的时间,接近请求处理的结束。除了 strftime(3) 支持的格式外,还支持以下格式标记:
自纪元以来的秒数
msec 自 Epoch 以来的毫秒数
usec 自纪元以来的微秒数
msec_frac 毫秒分数
usec_frac 微秒分数
这些标记不能相互组合或 strftime(3) 格式化为相同的格式字符串。您可以改用多个 %formatt 标记。
strftime(3) 格式化 http://man7.org/linux/man-pages/man3/strftime.3.html
【讨论】:
请注意 - 这不适用于 2.2,但仅适用于 apache 2.4+ 似乎在 apache 2.4.10 中不起作用:ErrorLogFormat "%%d/%b/%Y:%Tt-%msec_fract [%-m:%l] [ pid %P:tid %T] [client\ %a] %M% ,\ referer\ %Refereri" 输出:Fri Feb 20 16:32:18 2015-2015-02-20 16:32:18 [核心:通知] [pid 2162:tid 140307424573312] AH00094:命令行:'/usr/sbin/apache2'以上是关于增加 apache 日志的精度以包括毫秒的主要内容,如果未能解决你的问题,请参考以下文章
Elastic Beanstalk / ELB 增加了超过 60 毫秒的延迟