Automagically set logger name

Hello, usually logger instances are retrieved and initialized with the module name, using the well-known pattern: logger = logging.getLogger(__name__) In Java's very popular log4j library (which is cited as an influence by PEP 282), loggers are usually retrieved and initialized in basically an identical way: private final static Logger LOG = Logger.getLogger(<name-of-class>.class); However, in the upcoming log4j 2 library, a new way is available: private final static Logger LOG = LogManager.getLogger(); // Returns a Logger with the name of the calling class. [1] Basically the method throws an exception, catches it and fishes out the class name from the stack trace. This is a little less explicit, but still a more convenient (and less annoying) way of accomplishing an extremely common pattern. I was wondering what the core devs make of it: - is it a good idea? (In general, and in Python) Is it worth it? - is it feasible in Python? (taking into account other implementations too) - are there any gotchas that would make it worse than the current standard? [1]: https://svn.apache.org/repos/asf/logging/log4j/log4j2/trunk/log4j-api/src/ma...
participants (1)
-
Tin Tvrtković