天天看點

關于Python 的Logging

import logging
import sys

# 擷取logger執行個體,如果參數為空則傳回root logger
logger = logging.getLogger("AppName")

# 指定logger輸出格式
formatter = logging.Formatter('%(asctime)s %(levelname)-8s: %(message)s')

# 檔案日志
file_handler = logging.FileHandler("test.log")

# 可以通過setFormatter指定輸出格式
file_handler.setFormatter(formatter) 

# 控制台日志
console_handler = logging.StreamHandler(sys.stdout)

# 也可以直接給formatter指派
console_handler.formatter = formatter 

# 為logger添加的日志處理器,可以自定義日志處理器讓其輸出到其他地方
logger.addHandler(file_handler)
logger.addHandler(console_handler)

# 指定日志的最低輸出級别,預設為WARN級别
logger.setLevel(logging.INFO)

# 輸出不同級别的log
logger.debug('this is debug info')
logger.info('this is information')
logger.warn('this is warning message')
logger.error('this is error message')
logger.fatal('this is fatal message, it is same as logger.critical')
logger.critical('this is critical message')


# 2016-10-08 21:59:19,493 INFO : this is information
# 2016-10-08 21:59:19,493 WARNING : this is warning message
# 2016-10-08 21:59:19,493 ERROR : this is error message
# 2016-10-08 21:59:19,493 CRITICAL: this is fatal message, it is same as logger.critical
# 2016-10-08 21:59:19,493 CRITICAL: this is critical message


# 移除一些日志處理器
logger.removeHandler(file_handler)