如何在 Mac 上聚合和排序实时 stout/logs?

如何在 Mac 上聚合和排序实时 stout/logs?

我正在开发一个在 OSX 上使用 MySQL、Redis、MongoDB 和 memcached 的 rails 和 scala 应用程序。

总是打开 6 个终端并查看那里的日志是相当烦人的,所以我想知道是否有一个工具可以让我启动程序,然后抓取 stdout / log 到套接字(或日志文件尾部,如果这是唯一的输出)并将其与原点的前缀聚合

[MySQL        - 00pid00] SELECT .......
[Rails Server - 11pid11] GET request to /foo
...

理想情况下,我还可以像阿帕奇电锯允许使用 log4j 并基于正则表达式创建我自己的字段(即当出现错误时,向我显示一个仅显示错误的 URL 和导致错误的 HTTP 响应/文件 + 行的字段。

(我知道 sed awk grep 和 co,但 GUI 更易于使用,并且上手速度更快)

答案1

如果您可以将每个系统都设置为记录到文件,则可以从 Chainsaw 跟踪这些日志,并将日志条目聚合到单个表中。操作方法如下:

  • 下载 Chainsaw 的最新开发者快照:http://people.apache.org/~sdeboy
  • 选择“欢迎”选项卡,然后单击选项卡顶部的“查看示例接收器配置”按钮并复制配置 - 创建多个 VFSLogFilePatternReceiver 条目,每个要跟踪的日志文件一个。
  • 一旦所有日志文件都作为单独的选项卡显示在 Chainsaw 中,您就可以通过定义与您想要看到的事件匹配的表达式来收集新选项卡中所有选项卡的所有事件(有关表达式语法的文档,请参阅帮助/教程)。
    • 提示:清除并暂停电锯日志选项卡(从“当前选项卡”菜单中),以确保电锯日志消息不会与您的消息混合在一起
    • 选择“查看,从表达式创建标签”
    • 匹配所有选项卡中所有条目的最简单表达式是 MSG EXISTS
    • 将创建一个包含您的表达式的新选项卡,并填充与该表达式匹配的所有现有事件
    • 当与表达式匹配的新事件到达时,它们将被添加到原始选项卡以及表达式选项卡中

答案2

您可以将自己的日志文件添加到标准/Applications/Utilities/Console.app

相关内容