基本上都要 import logging模組, 這是python built-in的module, 然後有各種設定如下:
第一種: 最簡潔的語法
使用 logging.basicConfig() 將多種參數設定一次完成! logging.basicConfig 必須在輸出訊息之前呼叫,而且只能呼叫一次。
將xxxxx輸出到 stdout標準輸出:
1 2 3 4 5 |
import logging import sys logging.basicConfig(stream=sys.stdout,level=logging.DEBUG,format='%(asctime)s %(name)s - %(levelname)-s: %(message)s') logging.debug('xxxxxxx') #可以透過 logging印出 |
將xxxxx輸出到 log file:
1 2 3 4 5 |
import logging import sys logging.basicConfig(filename='myLog.txt',level=logging.DEBUG,format='%(asctime)s %(name)s - %(levelname)-s: %(message)s') logging.debug('xxxxxxx') #可以透過 logging印出 |
第二種: 進階一點的設定語法
將xxxxx輸出到 stdout標準輸出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
import logging import sys root = logging.getLogger() #透過 logging.getLogger() 來得到 root (Logger Object) root.setLevel(logging.DEBUG) #設定層級的訊息 ch = logging.StreamHandler(sys.stdout) # 定義ch為handler且為 stdout標準輸出 ch.setLevel(logging.DEBUG) #設定ch的層級的訊息 # 設定ch的輸出格式 formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') ch.setFormatter(formatter) # 將ch hander 加入到 root logger root.addHandler(ch) logging.debug('debug message! xxxxxxx') #可以透過 logging印出 root.debug('root message! xxxxxxx') #可以透過 root印出 (Logger Object) |