【问题标题】:Grepping through logs to get user, path通过日志获取用户、路径
【发布时间】:2015-07-10 22:02:46
【问题描述】:

我设置了一些日志记录来跟踪用户行为。这是我的日志文件中的示例行:

[INFO] User david@gmail.net DELETE /api/upitem/126926

我如何获取用户名david@gmail.com 在行中且url /api/upitem/ 在url 中的所有行?

类似

`grep 'david@gmail.com' ./file.log | grep '\/api\/upitem\/ ./file.log1`

这将是进行此日志搜索/分析的最佳方式吗?

【问题讨论】:

  • 为什么你在这个问题上标记了python
  • 你想要python还是grep解决方案?
  • @PadraicCunningham 任何一个都可以。我正在为应用程序使用 python/django,所以可以使用它或 grep。
  • 使用 python 一个简单的if "david@gmail.net" in line and "/api/upitem/12692" in line 会做你想做的事

标签: python regex grep


【解决方案1】:

您可以使用启用 -P 参数的单个 grep 命令来执行此操作。

grep -P '^(?=.*\bdavid@gmail\.com\b)(?=.*/api/upitem/)' ./file.log

【讨论】:

    【解决方案2】:

    你最好使用 awk,像这样:

    cat file.log | awk '{ if ($3=="david@gmail.net" && $5 ~ /api\/upitem/) print }'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-21
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多