Python logging question
koranthala at gmail.com
koranthala at gmail.com
Fri Jan 2 06:31:17 EST 2009
Hi,
I was reading through Python Logging tutorial, and I found one
scenario which I couldnt properly understand.
The tutorial (http://docs.python.org/library/logging.html)
mentions at first that -- "Multiple calls to getLogger() with the same
name will return a reference to the same logger object".
In an example for Python Logging Adapter, the tutorial then
mentions that -
"While it might be tempting to create Logger instances on a per-
connection basis, this is not a good idea because these instances are
not garbage collected".
I am confused reading both together. I will try to explain my
confusion with an example:
basicLogger = logging.getLogger("basic")
Class A():
def __init__(self):
self.logger = logging.getLogger("basic.class_a")
Now, I make say 10 instances of A and then delete one by one.
My understanding was that since the same name is used, a single
basic.class_a logger object is created inside the logging system, and
any calls to getLogger("basic.class_a") would return the same object
everytime.
So, my confusion is based on the second tutorial item I mentioned -
why is it not a good idea to create logger instances on a per-instance
basis? We are not creating new instances, right? And, if I create an
instance of A, it will be garbage collected later, right?
Could somebody help me out?
More information about the Python-list
mailing list