在log4j + MongoDB中维护事件顺序

时间:2012-03-01 14:30:40

标签: mongodb log4j

我正在调查MongoDB作为日志存储库。我已经设置了一个基本的MongoDB服务器,配置了Log4j,一切似乎都有效。

然而:

  • 我知道MongoDB写入是异步的(我不想通过使它们同步来消除性能)
  • 日志记录中的时间戳似乎仅精确到毫秒
  • 我的应用每毫秒记录多次
  • 我需要能够看到记录事件的顺序

有没有办法可以获得更精细的时间戳?

有没有办法在客户端注入序列号(没有客户端将它们放在日志消息中)?

1 个答案:

答案 0 :(得分:1)

MongoDB插入是顺序的,因为写锁是进程范围的。因此,您可以保证MongoDB将按照收到的顺序返回日志条目。使用sort({$ natural:1})将它们恢复原状。

请注意,尽管写入是异步的,但它们是有序的。