【发布时间】:2015-06-01 02:37:09
【问题描述】:
python 日志记录模块一旦导入和实例化,就会跨进程,在所有模块和线程中。他们是如何达到这种效果的?
示例:
myapp.py
import logging
import mylib
def main():
logging.basicConfig(filename='myapp.log', level=logging.INFO)
logging.info('Started')
mylib.do_something()
logging.info('Finished')
if __name__ == '__main__':
main()
mylib.py
import logging
def do_something():
logging.info('Doing something')
myapp.log
INFO:root:Started
INFO:root:Doing something
INFO:root:Finished
【问题讨论】:
-
为什么不看看
logging.py是如何实现的? hg.python.org/cpython/file/2.7/Lib/logging/__init__.py -
这是导入模块的标准行为。您自己的模块的行为是否有所不同?
-
@Alik 如果文件没有 1742 行,我会说你的建议很好;)
-
@alfasin 您无需阅读整个文件即可了解如何在模块中的任何位置使用一个实例。
-
@Alik 对,这就是为什么您的评论应该包含对相关行的更具体引用;)
标签: python class python-2.7 logging