In Django, I’ve got loggers all over the place, currently with hard-coded names.
For module-level logging (i.e., in a module of view functions) I have the urge to do this.
log = logging.getLogger(__name__)
For class-level logging (i.e., in a class __init__ method) I have the urge to do this.
self.log = logging.getLogger('%s.%s' % ( self.__module__, self.__class__.__name__))
I’m looking for second opinions before I tackle several dozen occurrences of getLogger('hard.coded.name').
Will this work? Anyone else naming their loggers with the same unimaginative ways?
Further, should I break down and write a class decorator for this log definition?
I typically don’t use or find a need for class-level loggers, but I keep my modules at a few classes at most. A simple:
At the top of the module and subsequent:
from anywhere in the file typically gets me to where I want to be. This avoids the need for
self.logall over the place, which tends to bother me from both a put-it-in-every-class perspective and makes me 5 characters closer to 79 character lines that fit.You could always use a pseudo-class-decorator: