首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日志的可排序、可读和标准时间格式

日志的可排序、可读和标准时间格式
EN

Stack Overflow用户
提问于 2013-07-23 19:56:02
回答 2查看 5.6K关注 0票数 12

日志中的时间戳格式

大多数日志行包含时间戳和事件描述:

代码语言:javascript
复制
[When] [What]

例如:

代码语言:javascript
复制
[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.

我正在试图为我的日志行找到一个标准的时间戳。我的标准是:

  1. 人类可读的。我想很容易地了解这件事是什么时候发生的。
  2. 按字母顺序排序的.当我从几个文件中grep事件并使用POSIX sort或甚至word/excel对它们进行排序时,我希望按字母顺序排序以遵循时间顺序排序。例如,[23/Jul/2012:19:35:11 +0000][22/Jul/2013:19:35:11 +0000]是不可排序的--2013年的行将出现在2012年行的前面。
  3. 很容易被所有公共语言解析。如果日志是由脚本处理的,则应该使用标准绞合时间轻松地解析时间戳。

到目前为止,我发现的唯一标准是8601,它有许多变体(例如2007-04-05T14:30Z2007-03-01T13:00:00Z),并且缺乏日志行事件的明确标准。

您能为日志行推荐一种标准的时间戳格式吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-01 00:03:48

@J.F. Sebestian -谢谢你的评论。

经过一些研究,我选择了协调世界时RFC 3339 / ISO 8601,例如:

代码语言:javascript
复制
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)]

功能:

  • 可排序(最重要的日期项位于左侧)
  • 可读性
  • 明确、时区清楚地说明
  • []分隔,用于重新确定日期。
  • 易解
  • 精确:使用纳秒(在某些机器上可能是毫秒,这就足够好了)

我还创建了一个不错的github项目,它有助于日期格式化 --可以随意查看并建议您自己的格式!

票数 20
EN

Stack Overflow用户

发布于 2017-04-10 13:24:26

unix命令有这样一个选项。使用

代码语言:javascript
复制
date -Iseconds

代码语言:javascript
复制
date -Ins

传令上写着:

代码语言:javascript
复制
   -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
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17819834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档