2014-02-12 47 views
0

我的項目是由許多模塊的多個模塊相同的文件,如何登錄到

我宣佈在main.py

LOG_FILE = "log.test.txt" 

一個日誌文件,但如何讓我的項目中的所有模塊可以使用LOG_FILE

將其所有日誌導出到一個日誌文件。

我知道調用其他模塊

e.g. streaming_verification.run(LOG_FILE)) 

時,我可以通過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 
+0

你可以使用日誌模塊寫一個記錄器類。 –

+0

你甚至不需要使用日誌記錄模塊的類,只需配置一個'logging.handlers.FileHandler'就可以了。看看[cookbook](http://docs.python.org/2/howto/logging-cookbook.html) – msvalkon

回答

1

從python文檔(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') 
+0

就像Jayanth Koushik的回答一樣,這裏是一個小型項目,使用了一個包含mylogging的例子:https:// github.com/zhaoqifa/scod – WKPlus