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

Reply via email to