Using logging (as library) is easy in Python.
But setting up logging is done different in nearly every environment. I would like to have a common way to **load** the configuration. The configuration itself should be done in the environment the scripts runs in.
If you write a console script, and you want it to be reusable in different environments, there is no default way at the moment (or at least I don't see any) to let the environment set up the logging.
I want a standard hook: The console script should be able to call into the surrounding environment. This improves reusablity.
I know how to use dictConfig() or fileConfig(), but these methods need parameters. And what the parameters look like should not be defined in the reusable console script.
I think the following solution is very flexible and solves most needs to set up logging, since I can implement your needs in for example your_environment_module.set_up()
{{{ def defaultConfig(): ''' Load module to set_up() the logging configuration of your environment.
Reads the module name from: os.environ.get('LOGGINGCONFIG', 'loggingconfig')
Calls set_up() on the imported module.
Would be nice to have this as logging.config.defaultConfig
Related: https://docs.python.org/2/library/logging.config.html
''' module_name = os.environ.get('LOGGINGCONFIG', 'loggingconfig') module = importlib.import_module(module_name) module.set_up() }}}
Do you understand what I propose?
What do you think?
Thomas Güttler