APP Flask 正在记录活动并显示在终端中,相同的记录也存储在一个文件中。 APP 大小增加,日志也增加。应用程序中的 dicFile 加载:
log_file_path = path.join(path.dirname(path.abspath(__file__)), 'log02.json')
with open(log_file_path, 'rt') as f:
dicFile = json.load(f)
logging.config.dictConfig(dicFile)
dicFile log02.json
处理程序填充 3 个文件(file、file2、file3); file
拥有所有记录,对于 file2
和 file3
需要的是解析并在其各自的日志中仅记录 WARNING
和 INFO
记录,但是它们正在接收警告/信息及以上根据其级别。
我理解是因为关卡默认配置。
它如何过滤和/或解析只需要级别的分离日志?配置的dicFile是:
"version": 1,
"disable_existing_loggers": false,
"filters":{
"warning": {
"level": "WARNING"
},
"info": {
"level": "INFO"
}
},
"formatters": {
"standard": {
"format": "%(levelname)s :: %(asctime)s :: %(name)s.%(funcName)s:%(lineno)d :: %(message)s",
"datefmt": "%d/%m/%y %H:%M:%S"
}
},
"handlers": {
"": {
"level": "DEBUG",
"formatter": "standard",
"class": "logging.StreamHandler",
"stream": "ext://sys.stdout"
},
"file": {
"level": "DEBUG",
"formatter": "standard",
"class": "logging.FileHandler",
"filename": "simple_APP/flaskblog/logs/todo.log",
"encoding": "utf-8"
},
"file2": {
"class": "logging.FileHandler",
"level": "WARNING",
"formatter": "standard",
"filters": ["warning"],
"filename": "simple_APP/flaskblog/logs/warning.log",
"encoding": "utf-8"
},
"file3": {
"class": "logging.FileHandler",
"level": "INFO",
"formatter": "standard",
"filters": ["info"],
"filename": "simple_APP/flaskblog/logs/info.log",
"encoding": "utf-8"
}
},
"loggers": {
"": {
"handlers": ["file", "file2", "file3"],
"level": "DEBUG",
"propagate": false
}
}
}