为了账号安全,请及时绑定邮箱和手机立即绑定

自定义日志处理/解析

自定义日志处理/解析

Go
慕丝7291255 2021-06-13 16:26:15
我有这样的日志格式:[26830431.7966868][4][0.013590574264526367][30398][api][1374829886.320353][init]   GET /foo  {"controller"=>"foo", "action"=>"index"}[26830431.7966868][666][2.1876697540283203][30398][api][1374829888.4944339][request_end]   200 OK条目是使用这样的模式来构造的:[request_id][user_id][time_from_request_started][process_id][app][timestamp][tagline]  payload在请求期间,我有很多地方可以记录一些东西 - 应用程序基本上具有复杂的行为。这有助于我调试很多用户行为。我想解析它的方式是我想让目录结构是这样的:req_id  |  |----[time_from_request_started][process_id][timestamp][tagline]  |  etc基本上每个目录都有基于 req_id 的名称,文件名是标语的其余部分。这些文件将包括有效载荷。而且我还会有其他目录,带有用户 ID,其中将包含由该用户完成的请求的符号链接。第一个问题:这个结构是否正确?在我看来,这将使快速的日志访问变得容易。我想使用目录和文件的原因是我喜欢unix方法,并尝试它(自己感受它的缺点和优点)第二个问题:我使用 ruby 来创建这个没有问题。但是我想学习一些新工具,它更适合于此。我正在考虑只使用 unix 工具(pipe、awk 等)来实现这一点,或者在我现在正在学习的 golang 中编写解析器(甚至有时间实现简单的 map reduce)。什么工具最适合这个?
查看完整描述

2 回答

?
ITMISS

TA贡献1871条经验 获得超8个赞

这个结构正确吗?

只有您自己知道,这直接取决于需要如何访问和使用数据。

什么工具最适合这个?

您可能可以使用 UNIX 工具来实现这一点,但通过编写此内容来练习您的 Go 技能也可能是一个很好的练习。它也将更具可扩展性。


查看完整回答
反对 回复 2021-06-21
  • 2 回答
  • 0 关注
  • 221 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信