【问题标题】:Increase precision of apache log to include milliseconds增加 apache 日志的精度以包括毫秒
【发布时间】: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 人口不多,因此回复的机会较低。我经常看到这个。

标签: apache timestamp syslog rsyslog


【解决方案1】:

http://httpd.apache.org/docs/current/mod/mod_log_config.html 您会看到不同的时间格式,包括毫秒 换成

%t 
to 
%{%d/%b/%Y:%T}t-%{msec_frac}t for miliseconds
or
%{%d/%b/%Y:%T}t-%{usec_frac}t 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 的时区偏移

%{format}t 时间,格式由 format 给出,应该是扩展的 strftime(3) 格式(可能本地化)。如果格式以 begin: 开头:(默认)时间是在请求处理开始时所用的。如果它以 end 开头:它是日志条目被写入的时间,接近请求处理的结束。除了 strftime(3) 支持的格式外,还支持以下格式标记:

自纪元以来的秒数

msec 自 Epoch 以来的毫秒数

usec 自纪元以来的微秒数

msec_frac 毫秒分数

usec_frac 微秒分数

这些标记不能相互组合或 strftime(3) 格式化为相同的格式字符串。您可以改用多个 %{format}t 标记。

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:%T}t-%{msec_frac}t [%-m:%l] [ pid %P:tid %T] [client\ %a] %M% ,\ referer\ %{Referer}i" 输出:Fri Feb 20 16:32:18 2015-2015-02-20 16:32:18 [核心:通知] [pid 2162:tid 140307424573312] AH00094:命令行:'/usr/sbin/apache2'
猜你喜欢
  • 2010-09-25
  • 2017-02-15
  • 1970-01-01
  • 1970-01-01
  • 2019-09-30
  • 2021-01-23
  • 2020-09-27
  • 1970-01-01
  • 2014-08-07
相关资源
最近更新 更多