大多数日志行包含时间戳和事件描述:
[When] [What]
e.g:
[23/Jul/2013:19:35:11 +0000] Processing started.
[23/Jul/2013:19:36:11 +0000] Processed 1000 items.
[23/Jul/2013:19:37:11 +0000] Processing finished successfully.
我正在尝试为我的日志行找到标准时间戳。我的标准是:
grep
来自几个文件的事件并使用POSIX sort
或甚至word / excel对它们进行排序时,我希望按字母顺序排序遵循按时间顺序排序。例如,[23/Jul/2012:19:35:11 +0000]
和[22/Jul/2013:19:35:11 +0000]
不可排序 - 2013年线将出现在2012年之前。到目前为止,我发现的唯一标准是ISO_8601,它有许多变体(例如2007-04-05T14:30Z
和2007-03-01T13:00:00Z
),并且没有明确的日志行事件标准。
您能为日志行推荐标准时间戳格式吗?
答案 0 :(得分:10)
@ J.F。塞贝斯蒂安 - 感谢您的评论。
经过一些研究后,我选择了RFC 3339 / ISO 8601 in UTC,例如:
date -u "+[%Y-%m-%d %H:%M:%S%z (%Z)]" # Space separated with tz abbreviation
[2013-07-31 23:56:34+0000 (UTC)]
date -u "+[%Y-%m-%d %H:%M:%S.%N %z (%Z)]" # Space separated with nanoseconds and tz abbreviation
[2013-07-31 23:56:34.812572000 +0000 (UTC)]
特点:
[
,]
分隔,对于重新标记日期非常有用我还创建了nice github project that helps with date formatting - 随时查看并建议您自己的格式!
答案 1 :(得分:2)
unix date命令有这样的选项。使用
date -Iseconds
或
date -Ins
该联机帮助页说:
-I[FMT], --iso-8601[=FMT]
output date/time in ISO 8601 format. FMT='date' for date only (the default),
'hours', 'minutes', 'seconds', or 'ns' for date and time to the indicated preci‐
sion. Example: 2006-08-14T02:34:56-0600