数据记录到文件中;如何轮换日志以及如何解析数据以不存在“间隙”?在数据中?
我有一个 Web 应用程序,出于性能原因,它将发送的所有数据放入日志文件中。
我对这种方法有两个担忧:
- 如何最好地轮换日志,以免丢失数据?
- 对于每个用户会话,都会记录多个请求。每个请求都有一个唯一的 ID,因此我可以通过一种简单的方法将请求与会话关联起来。然而,问题是,如果我轮换日志,我可能会面临在一个日志中出现一个请求而在另一个日志中出现另一个请求的风险。
如何以允许我解析给定会话中的所有请求的方式安排解析?我愿意定义一个会话时间限制,例如请求之间的间隔最多必须为 30 分钟。
如果我在 00 分钟进行每小时一次的日志轮换:
如果用户在 13:59 发出一个请求,在 14:01 发出一个请求,该怎么办 - 用户最终会在两个不同的日志中收到请求。
I've got a web application that, for performance reasons, throws any data sent into a logfile.
I've got two concerns with this approach:
- How do I best rotate logs, in order to not lose data?
- For each user session multiple requests are logged. Each request has a unique id so there is an easy way for me to tie the requests to the session. The problem is, however, that if I rotate the logs I risk ending up with one request in one log and another request in another log.
How do I arrange my parsing in a way that allows me to parse all requests from a given session? I am willing to define a session timelimit, for example that the requests must, at maximum be 30 minutes apart.
If I had a hourly log rotation at 00 minutes:
What if the user made one request at 13:59 and one at 14:01 - The user would end up having requests in two different logs.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
第 1 部分的回答:如果您使用的是 *nix,请使用 syslog/logger。检查 logger(1) 和 syslog.conf(5) 手册页。
第 2 部分的回答:您不必一次只查看一个日志文件。
less ${SERVICE}*
通常会一起打开所有相关日志文件:当您到达页面底部时, :n 会将您移至下一个文件,并 :p 返回。或者,使用日志分析程序。 Steve Kemp 的帖子,内容涉及在系统日志大海捞针中迅速找到针,并附有评论,很多地面。
Answer to part 1: If you're on *nix, use syslog/logger. Check the logger(1) and syslog.conf(5) man pages.
Answer to part 2: You're not forced to look at just one log file at a time.
less ${SERVICE}*
will normally open all the relevant log files together: when you get to the bottom of a page, :n will move you to the next file and :p back.Alternatively, use a log analyser program. Steve Kemp's post on promptly finding needles in syslog haystacks covers, together with its comments, a lot of ground.