KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have a package that has several components in it that would benefit greatly from using logging and outputting useful information. What I do not want to do is to 'setup' proper logging for every single file with somewhere along these lines: import logging logging.basicConfig(level=DEBUG) my_function = logging.getLogger("my_function") my_class = logging.getLogger("my_class") I have tried a couple of approaches, one of them being adding the boilerplate code into a class within a utility module and try and do something like this: from util import setlogging set_logging() But even the above solution doesn't look clean to me and would cause issues because setLogger doesn't have a __call__ method. What I did liked was that my "set_logging" class would read form a config file and have some default values so it wouldn't matter what level or what type of logging format I wanted it would set it up correctly. Is there a way to initialize proper logging across the board in my package? Maybe in the __init__.py file? And just to be as verbose as possible, this is what setlogging (now a function, not a class) looks like: def setlogging(config=None): if config == None: config = config_options() # sets default values levels = { 'debug': DEBUG, 'info': INFO } level = levels.get(config['log_level']) log_format = config['log_format'] datefmt = config['log_datefmt'] basicConfig( level = level, format = log_format, datefmt = datefmt)
Tags (comma-separated)
Save Edits
Cancel