文件结构
- run.py
- b
-- __init__.py
run.py
import logging import b log = logging.getLogger("") tmp = logging.FileHandler('log.txt')
log.addHandler(tmp) log.warning("") sample = b.b()
print sample.foo()
__init__.py
import logging log = logging.getLogger("b") class b:
def __init__(self):
pass def foo(self):
log.warning(1111)
return "Foo in class b"
run.py 中的 addHandler 可以作用到 package b 下的文件,因为 getLogger("b) 也会 getLogger(""), 如果 run.py 中定义为 getLogger("a") 就获取不到了
Logger对象组织为一种层次结构 如 app.net.client 会有三个不同的 logger 对象 -- app || app.net || app.net.client