将结构化JSON日志转换为可读输出
jsonlog-cli的Python项目详细描述
jsonlog命令行界面
一个人类可读的JSON日志格式化程序。在
它是为与jsonlog一起使用而构建的,但是可以很好地与任何 使用行分隔的JSON。在
使用
有关所有选项,请参见jsonlog --help
。在
键值模式
将文件作为唯一的参数传递给jsonlog
,或默认从STDIN读取。在
jsonlog kv docs/example.log^{pr2}$
cat docs/example.log | jsonlog
仅显示timestamp
和message
字段:
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
模板模式
仅显示timestamp
和message
字段:
jsonlog template --format "{timestamp} {message}" docs/example.log
还显示多行键(如果存在):
jsonlog template --format "{timestamp} {message}" --multiline-key traceback docs/example.log
配置
支持将命名为“patterns”的方法收集
jsonlog的键值和模板模式。如果~/.config/jsonlog/config.json
存在,它将在启动时加载。所有字段都应该是可选的。在
下面的示例配置文件创建名为basic
的模式,并
comprehensive
用于键值和模板模式。每种模式都会
显示传入日志的timestamp
和message
字段。模式
namedcomprehensive
覆盖所有字段,设置它们的默认值。在
创建一个名为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}"}}}
multiline_json
选项将使用缓冲区解析传入的数据。这是
很少有用,但有些应用程序(例如ElasticSearch)输出JSON split
跨越多条线。传入的数据将被缓冲,直到整个缓冲区
被解析为JSON或新行以{
开头。可以
立即解析为JSON的不会被缓冲(首先刷新缓冲区)。在
调试
jsonlog
CLI有一些在调试时很有用的标志。以下内容
将内部日志作为JSON打印到STDERR。在
jsonlog --log-path=- --log-level=debug kv ...
作者
- 项目
标签: