[Python-ideas] Automagically set logger name
Tin Tvrtković
tinchester at gmail.com
Tue Dec 10 19:29:57 CET 2013
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/main/java/org/apache/logging/log4j/LogManager.java
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20131210/e9476bca/attachment.html>
More information about the Python-ideas
mailing list