[英]Python logging JSON config for sub packages
我有一组Python脚本,其顺序如下:
包装1
包装2
其中log.py使用以下命令为所有日志创建中央设置:
logging_config_json_file = open(os.path.dirname(os.path.realpath(__file__)) + "/../logging.json")
parsed_logging_data = json.load(logging_config_json_file)
logging.config.dictConfig(parsed_logging_data)
def get_logger(logger_name):
return logging.getLogger(logger_name)
如果我通过package2.log.get_logger(__ name__)调用获取记录器,则可以正常工作。
但是,我只是无法在logging.json文件中正确配置子软件包package1.X和Y。
这是JSON文件的简单版本:
{
"version": 1,
"disable_existing_loggers": 0,
"formatters": {
"simple": {
"format": "%(levelname)s - %(message)s"
}
},
"handlers": {
"console": {
"class": "logging.StreamHandler",
"level": "DEBUG",
"formatter": "simple",
"stream": "ext://sys.stdout"
}
},
"loggers": {
"package1.X": {
"level": "INFO",
"handlers": ["console"],
"propagate": 0
}
},
"root": {
"level": "WARN",
"handlers": ["console"]
}
}
为什么这里的package1.X中的所有内容都不以INFO级别记录(仅发出警告)?
我不太了解(有点像新手),但看起来该级别是从root -> logger -> handler
或root -> logger -> handler
(我还没有root -> logger -> handler
)级联的。
因此,如果将root设置为INFO,则应获得:
package1.X
信息 就像我说的,还没有解释(也许以后,当我花更多时间在python中记录框架时)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.