[英]How do I configure JsonFormatter in logging dictConfig?
I'd like to use logging.config.dictConfig with a json config file. 我想将logging.config.dictConfig与json配置文件一起使用。 But I want to use a formatter from another class: pythonjsonlogger.jsonlogger.JsonFormatter
但我想使用另一个类的格式化程序: pythonjsonlogger.jsonlogger.JsonFormatter
What's wrong with this code/json: 这段代码/ json出了什么问题:
$ cat test.json
{
"version": 1,
"disable_existing_loggers": "true",
"formatters": {
"json": {
"class": "pythonjsonlogger.jsonlogger.JsonFormatter"
# also tried "jsonlogger.JsonFormatter" (comment not in real file)
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "json",
"stream": "ext://sys.stdout"
}
},
"loggers": { },
"root": {
"handlers": ["console"],
"level": "DEBUG"
}
}
code: 码:
import sys
sys.path.append('/usr/local/lib/python2.7/site-packages')
import json
import logging
import logging.config
from pythonjsonlogger import jsonlogger
fp = open('/test.json')
logging.config.dictConfig(json.load(fp))
fp.close()
logging.info('test log line')
output: 输出:
test log line
Expected something like { "message": "test log line" } 期待类似{“message”:“test log line”}
Ok, pretty funny, but works: 好的,非常有趣,但有效:
Json: JSON:
{
"version": 1,
"disable_existing_loggers": true,
"formatters": {
"json": {
"()": "pythonjsonlogger.jsonlogger.JsonFormatter"
}
},
"handlers": {
"json": {
"class": "logging.StreamHandler",
"formatter": "json"
}
},
"loggers": {
"": {
"handlers": ["json"],
"level": 20
}
}
}
Code: 码:
import logging_util as safe_logging
import logging.config
import json
fp = open("logger_config.json")
config = json.load(fp)
fp.close()
logging.config.dictConfig(config)
safe_logging.via_logger = logging.getLogger("JsonLogger")
safe_logging.info("event")
Formatter can also have a format, not sure how, but it works: Formatter也可以有格式,不确定如何,但它的工作原理:
"json": {
"()": "pythonjsonlogger.jsonlogger.JsonFormatter",
"format": "%(asctime)s %(levelname)s %(filename)s %(lineno)s %(message)s"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.