【发布时间】:2015-04-29 09:22:15
【问题描述】:
我正在编写一个日志类,它应该以微秒精度级别提供当前日期和时间。我不想直接使用 snprintf 格式化所有日志消息(以便可以有效地过滤它们),而是有一个这样的结构:
struct log_record {
timestamp_t time;
uint32_t msg_len;
...
}
这应该能够与其他可能具有另一个 cpu、操作系统(linux 和 windows)等的机器(例如使用 tcp)共享。是否存在现有的时间戳格式/库(可能在某些数据库系统中? ) 可以满足我的要求吗?
【问题讨论】:
-
您意识到将多台机器的时钟同步到微秒级并非易事,对吧?换句话说,即使您可以获得具有该精度的本地时间戳(您可以),您也不能仅仅假设它们相对于全球时间是正确的。 NTP 大约几毫秒。
-
是的,我不需要它们非常正确。全球时间。但是我希望有一个服务器可以为所有单个客户端完成所有重要的日志记录(格式化消息,按某些标准过滤它们,检查逻辑一致性,将它们存储到文件中......)。为此,我需要有一个跨平台的时间戳数据格式/结构。