头图

在终端中查看大量的 JSON 格式日志常常让人头疼,信息杂乱无章,难以快速定位关键信息。l'oGGo 正是为了解决这个问题而生的!它是一款基于 Golang 开发的终端用户界面 (TUI) 应用,能够有效地解析和展示 JSON 日志流,让日志分析变得轻松高效。

loggo.gif

l'oGGo 的优势

相比于传统的终端日志输出,l'oGGo 提供了更加友好的交互式界面,让您可以:

  • 过滤/搜索日志: 无需改动原始日志流,即可根据自定义的过滤条件实时筛选出想要查看的日志条目。l'oGGo 提供了便捷的键值查找和操作符,方便您构建复杂的过滤表达式。

    # 使用 --filter 参数进行过滤
    loggo stream --file <日志文件> --filter 'level="error" and message~="timeout"'
  • 查看日志详情: 可以深入查看每个日志条目的详细信息,方便分析问题根源。
  • 复制日志条目: 可以将单个日志条目复制到剪贴板,方便分享和记录。 (Linux 系统需要安装 X11 开发包,例如 libx11-devxorg-devlibX11-devel)
  • 便捷的导航: 支持使用方向键在大型日志网格中上下左右移动,快速浏览日志内容。
  • 文本选择和复制: 支持在屏幕上选择文本并复制到剪贴板,方便提取关键信息。(macOS 使用 Alt + 鼠标点击/拖动进行水平选择,Cmd+Opt + 鼠标点击/拖动进行块/垂直选择;复制使用 Cmd+C。其他系统使用 Ctrl+C 复制)
  • 自定义渲染模板: 您可以根据自己的需求创建和配置渲染模板,控制日志的显示格式。
  • 微调列显示: 通过模板,您可以使用正则表达式精确控制每一列的显示内容。

快速上手

安装:

# 启用 install 模块的交互式 UI,x i 为 x install 的简写
x i

pic01

选定软件后,按下回车键将展示一系列操作选项

pic02

使用:

从文件读取日志:

loggo stream --file <日志文件>

从管道读取日志:

tail -f <日志文件> | loggo stream

Kubernetes 示例:

kubectl logs -f -n <命名空间> <Pod 名称> | loggo stream

GCP Logging 集成:

loggo gcp-stream \
    --filter 'resource.labels.namespace_name="some-namespace" resource.labels.container_name="some-container"' \
    --project <GCP 项目 ID> \
    --from 10m

自定义模板:

loggo stream --file <日志文件> --template <模板文件>

创建/编辑模板:

loggo template
# 编辑现有模板
loggo template --file <模板文件>

l'oGGo 是一款功能强大的终端日志查看工具,它能够帮助您更好地理解和分析日志数据,提高工作效率。如果您经常需要在终端中查看日志,不妨试试 l'oGGo,相信它会让您眼前一亮!

来源:

https://github.com/aurc/loggo/blob/main/README.md




更多内容请查阅 : install/loggo

xcmd
1 声望1 粉丝