面向大众的基于JSON的日志记录
项目描述
将日志写入json-line格式。
源代码 |
|
下载 |
json-scribe @ pypi.org |
这个库是将Docker容器日志发送到Loggly的结果。Loggly与结构化Syslog数据配合良好,但如果你将结构化的Syslog行作为JSON传递给聚合器,你最终会得到一个无法索引的混乱。此库包含几个类,可以更轻松、更干净地将日志内容作为单行JSON对象发送,包括异常。
用法
配置
{
"version": 1,
"filters": {
"defaultsetter": {
"()": "jsonscribe.AttributeSetter",
"add_fields": {
"correlation_id": "ext://UUID"
}
}
},
"formatters": {
"jsonlines": {
"()": "jsonscribe.JSONFormatter",
"include_fields": [
"name",
"levelname",
"asctime",
"message",
"module",
"correlation_id",
"exc_info"
],
}
},
"handlers": {
"loggly": {
"class": "logging.StreamHandler",
"formatter": "jsonlines",
"filters": ["defaultsetter"],
"stream": "ext://sys.stdout"
}
},
"loggers": {
"somepackage": {
"level": "DEBUG",
}
},
"root": {
"level": "INFO",
"handlers": ["jsonlines"]
}
}
日志记录
以下示例是最简单的用法。它不过是日志模块的教科书式用法。它使用上面的日志配置并生成一个JSON数据块。
import logging.config
import json
if __name__ == '__main__':
config = json.load(open('config.json'))
logging.config.dictConfig(config)
logger = logging.getLogger(__package__).getChild('main')
logger.info('processing request')
JSON消息看起来像以下示例。它已被重新格式化以便于阅读。默认情况下,以紧凑的JSON格式呈现。
{
"name": "somepackage.main",
"levelname": "INFO",
"asctime": "2018-08-09T07:44:54.231",
"module": "somepackage.entrypoints",
"correlation_id": "33CA3FB3-D66F-4D32-83A5-D5A8C3D92A6E",
"message": "processing request",
"exc_info": null
}
项目详情
关闭
json-scribe-2.0.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d3cfb1267dd4de61f7c3fe9a846427cac0bfc368d19d9ffb569ee46aef2b8d15 |
|
MD5 | 2cba003503fc36f6bf31a1b98ba742d8 |
|
BLAKE2b-256 | dc8cdb949f599592942cb624a18c9773f3daeb79fd1e45a7e49bec41f0039632 |
关闭
json_scribe-2.0.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d846bb7033ab4aab95a034935e6e460e10a4bf300a4ab67f64798954b3616351 |
|
MD5 | 1fbd94dc3aa4004958d1d0b68f403e98 |
|
BLAKE2b-256 | 92a848c28ab9f2ae510c7b7881e3947dfa1db82cd7f0b730d7cf2c91ea462555 |