genkuro wrote:
On Jun 15, 8:49 am, Mark Lawrence <breamore...@yahoo.co.uk> wrote:
On 15/06/2010 16:35, genkuro wrote:
Newbie here. I may be missing something obvious, in which case,
please feel free to berate and laugh at me.
Here's a dubious line of code:
logging = logging.getLogger(__name__)
How can I refer to the original logging package "logging" after this
statement is run? Specifically, I'm trying to add a log handler with
logging.addHandler(x) and it is of course failing.
Thanks,
Brian
Change it to something like logger = logging.getLogger(__name__), then
logger.addHandler(x). If you don't do this, your logging shadows the
logging module so you won't get very far.
HTH.
Mark Lawrence
Hi Mark -
I thought that would be the answer.
I asked because I'm working with a framework where logging is
similarly renamed in almost every file. The framework is under
development so refactoring is an option.
I'm coming to Python from Java. I'm still getting a feel for scoping
limits. For the sake of curiosity, is there another way to refer to a
package besides name?
Thanks,
Brian
Yes, there is another way but you don't want to do that. As mentioned
before, use a proper name (logger is a good candidate).
import sys
print sys.modules['logging']
<module 'logging' from '/usr/lib/python2.5/logging/__init__.pyc'>
pylint usually tells you when you're shadowing some standard package, I
would advise to use this tool (requires some tuning though).
JM
--
http://mail.python.org/mailman/listinfo/python-list