数据记录到文件中;如何旋转日志以及如何解析数据以使数据中没有“间隙”?

时间:2010-03-23 12:16:08

标签: parsing logging logrotate

我有一个Web应用程序,出于性能原因,会抛出发送到日志文件中的所有数据。

我对这种方法有两个顾虑:

  1. 如何最好地轮换日志,以免丢失数据?
  2. 对于每个用户会话,记录多个请求。每个请求都有一个唯一的ID,因此我可以轻松地将请求绑定到会话。但问题是,如果我轮换日志,我可能会在一个日志中遇到一个请求,另一个日志中有另一个请求。
  3. 如何以允许我解析来自给定会话的所有请求的方式安排解析?我愿意定义会话时间限制,例如请求必须最多相隔30分钟。

    如果我在00分钟进行了每小时的日志轮换:

    如果用户在13:59发出一个请求而在14:01发出一个请求怎么办 - 用户最终会在两个不同的日志中发出请求。

1 个答案:

答案 0 :(得分:0)

对第1部分的回答:如果你在* nix上,请使用syslog / logger。检查logger(1)和syslog.conf(5)手册页。

对第2部分的回答:您不必一次只查看一个日志文件。 less ${SERVICE}*通常会同时打开所有相关的日志文件:当您到达页面底部时,:n将移动到下一个文件,然后:p返回。

或者,使用日志分析程序。 Steve Kemp's post及时在syslog haystacks封面上找到针头,连同其评论,有很多基础。