跳转到主要内容

将结构化JSON日志转换为可读输出

项目描述

jsonlog-cli

JSON日志的可读格式化工具。

它是为与jsonlog一起使用而构建的,但也适用于任何使用行分隔JSON的日志格式。

Example output

用法

有关所有选项,请参阅jsonlog --help

键值模式

将文件作为jsonlog的唯一参数传递,或默认从标准输入读取。

jsonlog kv docs/example.log
python docs/example.py | jsonlog kv
cat docs/example.log | jsonlog

仅显示timestampmessage字段

jsonlog kv --key timestamp --key message docs/example.log

配置要显示的多行值的键(可以指定多次,默认为traceback键)

jsonlog kv --key timestamp --key message --multiline-key traceback docs/example.log

配置用于提取并用作记录级别的键,以控制每行打印的颜色(默认为level键)

jsonlog kv --level-key level --key timestamp --key message --multiline-key traceback docs/example.log

模板模式

仅显示timestampmessage字段

jsonlog template --format "{timestamp} {message}" docs/example.log

如果存在,也显示多行键

jsonlog template --format "{timestamp} {message}" --multiline-key traceback docs/example.log

配置

支持名为“模式”的命名方式,以便收集jsonlog的键值和模板模式的选项集。如果存在~/.config/jsonlog/config.json,它将在启动时加载。所有字段都应该是可选的。

下面的示例配置文件创建了名为basiccomprehensive的模式,用于键值和模板模式。每个模式将显示传入日志的timestampmessage字段。名为comprehensive的模式将覆盖所有字段,设置其默认值。

创建名为default的模式将设置在没有指定模式时使用的默认选项。命令行选项始终覆盖应用程序默认配置、配置文件和所选模式的选项。

{
  "keyvalues": {
    "basic": {
      "priority_keys": ["timestamp", "message"]
    },
    "comprehensive": {
      "level_key": "level",
      "multiline_json": false,
      "multiline_keys": [],
      "priority_keys": [],
      "removed_keys": []
    }
  },
  "templates": {
    "basic": {
      "format": "{timestamp} {message}"
    },
    "comprehensive": {
      "level_key": "level",
      "multiline_json": false,
      "multiline_keys": [],
      "format": "{timestamp} {message}" 
    }
  }
}

《多行JSON》选项将使用缓冲区解析传入的数据。这很少有用,但某些应用程序(例如ElasticSearch)会输出跨多行的JSON。传入的数据将缓冲,直到整个缓冲区可以解析为JSON或新行以{开始。可以立即解析为JSON的传入行不会被缓冲(首先刷新缓冲区)。

调试

jsonlog CLI有一些在调试时很有用的标志。以下命令将内部日志以JSON格式打印到标准错误。

jsonlog --log-path=- --log-level=debug kv ...

作者

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

jsonlog-cli-6.3.0.tar.gz (11.1 kB 查看哈希)

上传时间

构建分布

jsonlog_cli-6.3.0-py3-none-any.whl (12.3 kB 查看哈希)

上传时间 Python 3

由以下支持