如何在多个模块中登录同一文件

时间:2014-02-12 08:01:54

标签: python python-2.7

我的项目由许多模块组成,

我在main.py

中声明了一个日志文件
LOG_FILE = "log.test.txt"

但如何在我的项目中制作所有模块可以使用LOG_FILE

将所有日志导出到一个日志文件。

我知道我可以在调用其他模块时传递LOG_FILE变量

e.g. streaming_verification.run(LOG_FILE))

但这是一个好方法吗?

│   ├── __init__.py
│   ├── camera_cgi.py
│   ├── camera_cgi.pyc
│   ├── camera_cgi_converter.py
│   ├── camera_cgi_converter.pyc
│   ├── codec_info_parser.drawing
│   ├── codec_info_parser.py
│   ├── codec_info_parser.pyc
│   ├── debug_streaming_cfg.txt
│   ├── excel_parser.py
│   ├── excel_parser.pyc
│   ├── main.py
│   ├── report.py
│   ├── run.sh
│   ├── simple.py
│   ├── streaming.py
│   ├── streaming.pyc
│   ├── streaming_verification.py
│   └── streaming_verification.pyc

1 个答案:

答案 0 :(得分:1)

来自python docs(http://docs.python.org/2/howto/logging.html#logging-from-multiple-modules):

If your program consists of multiple modules, here’s an example of how you 
could organize logging in it:

# 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')