1. 程式人生 > >Python 日誌,logging模組

Python 日誌,logging模組

 

demo.py(日誌,輸出到控制檯):

import logging   # 匯入logging模組

# 日誌級別預設是WARNING
logging.basicConfig(level=logging.WARNING,  
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')  

# 開始使用log功能
logging.info('這是 loggging info message')  
logging.debug('這是 loggging debug message')  
logging.warning('這是 loggging a warning message')  
logging.error('這是 loggging error message')  
logging.critical('這是 loggging critical message')

demo.py(日誌,輸出到檔案):

import logging  

# 配置日誌的輸出檔案,以及檔案的開啟方式
logging.basicConfig(level=logging.WARNING,  
                    filename='./log.txt',  
                    filemode='a',    # a表示追加的模式開啟檔案
                    format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')  
# use logging  
logging.info('這是 loggging info message')  
logging.debug('這是 loggging debug message')  
logging.warning('這是 loggging a warning message')  
logging.error('這是 loggging error message')  
logging.critical('這是 loggging critical message')


demo.py(日誌,同時輸出到檔案和控制檯):

import logging  

# 第一步,建立一個logger  
logger = logging.getLogger()  
logger.setLevel(logging.INFO)  # Log等級總開關  

# 第二步,建立一個handler,用於寫入日誌檔案  
logfile = './log.txt'  
fh = logging.FileHandler(logfile, mode='a')  # mode表示檔案的開啟方式
fh.setLevel(logging.DEBUG)  # 輸出到file的log等級的開關  

# 第三步,再建立一個handler,用於輸出到控制檯  
ch = logging.StreamHandler()  
ch.setLevel(logging.WARNING)   # 輸出到console的log等級的開關  

# 第四步,定義handler的輸出格式  
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")  
fh.setFormatter(formatter)  
ch.setFormatter(formatter)  

# 第五步,將logger新增到handler裡面  
logger.addHandler(fh)  
logger.addHandler(ch)  

# 日誌  
logger.debug('這是 logger debug message')  
logger.info('這是 logger info message')  
logger.warning('這是 logger warning message')  
logger.error('這是 logger error message')  
logger.critical('這是 logger critical message')