Make log_handler a little more flexible. (#215)

This commit is contained in:
Paul Kronenwetter 2022-06-19 08:33:37 -04:00 committed by GitHub
parent 8242f61309
commit 8a5eea4dd5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -22,44 +22,47 @@ def setup_logging(filename: str = "", level: str = "DEBUG"):
timestamper, timestamper,
] ]
logging.config.dictConfig( config_dict = {
{ "version": 1,
"version": 1, "disable_existing_loggers": False,
"disable_existing_loggers": False, "formatters": {
"formatters": { "plain": {
"plain": { "()": structlog.stdlib.ProcessorFormatter,
"()": structlog.stdlib.ProcessorFormatter, "processor": structlog.dev.ConsoleRenderer(colors=False),
"processor": structlog.dev.ConsoleRenderer(colors=False), "foreign_pre_chain": pre_chain,
"foreign_pre_chain": pre_chain,
},
"colored": {
"()": structlog.stdlib.ProcessorFormatter,
"processor": structlog.dev.ConsoleRenderer(colors=True),
"foreign_pre_chain": pre_chain,
},
}, },
"handlers": { "colored": {
"default": { "()": structlog.stdlib.ProcessorFormatter,
"level": level, "processor": structlog.dev.ConsoleRenderer(colors=True),
"class": "logging.StreamHandler", "foreign_pre_chain": pre_chain,
"formatter": "colored",
},
"file": {
"level": level,
"class": "logging.handlers.WatchedFileHandler",
"filename": f"{filename}.log",
"formatter": "plain",
},
}, },
"loggers": { },
"": { "handlers": {
"handlers": ["default", "file"] if filename else ["default"], "default": {
"level": level, "level": level,
"propagate": True, "class": "logging.StreamHandler",
}, "formatter": "colored",
}, },
},
"loggers": {
"": {
"handlers": ["default"],
"level": level,
"propagate": True,
},
},
}
if filename:
config_dict["handlers"]["file"] = {
"level": level,
"class": "logging.handlers.WatchedFileHandler",
"filename": f"{filename}.log",
"formatter": "plain",
} }
) config_dict["loggers"][""]["handlers"].append("file")
logging.config.dictConfig(config_dict)
structlog.configure( structlog.configure(
processors=[ processors=[
structlog.stdlib.add_log_level, structlog.stdlib.add_log_level,