专为logstash设计的JSON格式化程序
项目描述
此库提供标准Python日志记录,以便以JSON对象输出日志数据,以便发送到logstash。
此项目最初由exoscale(顺便说一句,这是一个很棒的主机服务)开源,感谢他们。
安装
Pip (PyPI)
pip install logstash_formatter
手册
python setup.py install
用法
由LogstashFormatter日志格式化程序提供JSON输出。
import logging from logstash_formatter import LogstashFormatterV1 logger = logging.getLogger() handler = logging.StreamHandler() formatter = LogstashFormatterV1() handler.setFormatter(formatter) logger.addHandler(handler)
LogstashFormatter可以接受以下命名参数
fmt:支持配置的JSON字符串
extra:提供始终存在于日志中的额外字段。
source_host:覆盖源主机名。
json_cls:要转发到json.dump的JSON编码器。
json_default:未知类型的默认JSON表示形式,默认将所有内容强制转换为字符串。
LogstashFormatterV1 遵循 1.2.0 架构,不会更新字段,除了对 msg 进行特殊处理,当适用时将更新为 message。
您还可以通过指定一个字典代替消息,或指定名为 extra 的字典作为命名参数来向您的 json 输出添加额外字段。当通过带有真值的名字参数 exc_info 提供时,如果堆栈中存在异常,其跟踪信息也将附加到有效负载中。
logger.info({"account": 123, "ip": "172.20.19.18"}) logger.info("classic message for account: {account}", extra={"account": account}) try: h = {} h['key'] except: logger.info("something unexpected happened", exc_info=True)
LogstashFormatter 的示例输出
以下键将在输出 JSON 中找到
@source_host:日志的源主机名
@timestamp:ISO 8601 时间戳
@message:此日志的简短消息
@fields:所有额外字段
{ "@fields": { "account": "pyr", "args": [], "created": 1367480388.013037, "exception": [ "Traceback (most recent call last):\n", " File \"test.py\", line 16, in <module>\n k['unknown']\n", "KeyError: 'unknown'\n" ], "filename": "test.py", "funcName": "<module>", "levelname": "WARNING", "levelno": 30, "lineno": 18, "module": "test", "msecs": 13.036966323852539, "name": "root", "pathname": "test.py", "process": 1819, "processName": "MainProcess", "relativeCreated": 18.002986907958984, "thread": 140060726359808, "threadName": "MainThread" }, "@message": "TEST", "@source_host": "phoenix.spootnik.org", "@timestamp": "2013-05-02T09:39:48.013158" }
LogstashFormatterV1 的示例输出
以下键将在输出 JSON 中找到
@timestamp:ISO 8601 时间戳
@version:架构版本
{"@version": 1, "account": "pyr", "lineno": 1, "levelno": 30, "filename": "test.py", "thread": 140566036444928, "@timestamp": "2015-03-30T09:46:23.000Z", "threadName": "MainThread", "relativeCreated": 51079.52117919922, "process": 10787, "source_host": "phoenix.spootnik.org", "processName": "MainProcess", "pathname": "test.py", "args": [], "module": "test", "msecs": 999.9005794525146, "created": 1427708782.9999006, "name": "root", "stack_info": null, "funcName": "<module>", "levelname": "WARNING", "message": "foo"}
项目详情
关闭
logstash_formatter-0.5.17.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 163f5ef62df5459f1d36dcb54e9c3f8f0c90157a324a3361887532b615bf4fb9 |
|
MD5 | 1e425aad91a76fd8a08aeb3f11d2e32a |
|
BLAKE2b-256 | 7f6973c5b373ac656de0ee61175597d6739bd69bddcbc80894940cdb4237af8a |