Use your pyproject.toml (or any other TOML file) to configure Python's native logging module
You can use logging518.config.fileConfig
the same way you would use logging.config.fileConfig
but instead of passing a ConfigParser-form file, you can pass in a TOML-form file.
import logging
import logging518.config # instead of logging.config
logging518.config.fileConfig("pyproject.toml")
logger = logging.get_logger("project")
logger.info("Hello, log!")
logging518.config.fileConfig
simply deserializes the TOML file you pass in (using tomli
/tomllib
) and passes the contents to logging.config.dictConfig
.
logging518.config.fileConfig
uses the tool table in your TOML file to look up the configuration. All logging config should be defined under tool.logging
in the tool table.
[tool.logging]
version = 1
disable_existing_loggers = true
[tool.logging.loggers.project]
level = "WARNING"
[tool.logging.loggers.project.foo_module]
level = "DEBUG"
This config would be the same as:
import logging.config
LOGGING_CONFIG = {
"version": 1,
"disable_existing_loggers": True,
"loggers": {
"project": {
"level": "WARNING"
},
"project.foo_module": {
"level": "DEBUG"
}
}
}
logging.config.dictConfig(LOGGING_CONFIG)
More examples can be found in the 👩🍳 Cookbook