2016-06-09 107 views
0

該代碼片段創建一個日誌過濾器,將錯誤級別及以上級別放入控制檯和DEBUG中,並放入日誌文件中。我似乎無法弄清楚的是如何在我的各個模塊中重複使用該配置,以便我寫入相同的日誌文件,但名稱正確指示生成該消息的模塊。重複使用python模塊上的日誌記錄配置

在此先感謝!

import logging 


default_formatter = logging.Formatter(
    "%(asctime)s:%(name)s:%(levelname)s:%(message)s") 

console_handler = logging.StreamHandler() 
console_handler.setLevel(logging.ERROR) 
console_handler.setFormatter(default_formatter) 

file_handler = logging.FileHandler("error.log", "a") 
file_handler.setLevel(logging.DEBUG) 
file_handler.setFormatter(default_formatter) 

noralog = logging.getLogger(__name__) 
noralog.setLevel(logging.DEBUG) 
noralog.addHandler(console_handler) 
noralog.addHandler(file_handler) 

noralog.debug('PUT ME ONLY IN THE FILE') 
noralog.error('STREAM AND FILE') 

回答

0

這似乎是工作,但我不知道這是最好的解決辦法: #noralog.py 高清setup_logging(的localName): 進口記錄

default_formatter = logging.Formatter(
      "%(asctime)s:%(name)s:%(levelname)s:%(message)s") 

    console_handler = logging.StreamHandler() 
    console_handler.setLevel(logging.ERROR) 
    console_handler.setFormatter(default_formatter) 

    file_handler = logging.FileHandler("error.log", "a") 
    file_handler.setLevel(logging.DEBUG) 
    file_handler.setFormatter(default_formatter) 

    noralog = logging.getLogger(localname) 
    noralog.setLevel(logging.DEBUG) 
    noralog.addHandler(console_handler) 
    noralog.addHandler(file_handler) 
    return noralog 


#othermod.py 
import noralog 

ff = noralog.setup_logging(__name__) 
ff.debug('PUT THIS ONLY IN FILE LOG') 
ff.error('PUT THIS IN STREAM AND FILE LOG') 
相關問題