Python日志是記錄程序運行時產生的信息的重要工具,可以幫助開發者更好地了解程序中出現的問題。
在Python中,日志功能由標準庫logging模塊提供??梢允褂胠ogging模塊創建記錄器(logger)和處理器(handler),將日志信息輸出到不同的目標。
按天記錄日志
在實際開發中,按天記錄日志是一種常見的需求。即將不同日期的日志信息存儲到不同的文件中??梢允褂胠ogging.handlers.TimedRotatingFileHandler類實現按天記錄日志的功能。
import logging from logging.handlers import TimedRotatingFileHandler logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) handler = TimedRotatingFileHandler('myapp.log', when='midnight', backupCount=5) handler.setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.debug('This is a debug message') logger.info('This is an info message') logger.warning('This is a warning message') logger.error('This is an error message') logger.critical('This is a critical message')
在上面的代碼中,創建了一個名為logger的記錄器,并設置其記錄級別為DEBUG,即記錄DEBUG及以上級別的信息。然后創建了一個按天記錄日志信息的處理器TimedRotatingFileHandler,設置其級別為DEBUG,并且設置日志文件名為myapp.log,當天過去后會自動創建新的myapp.log文件。backupCount參數表示最多保存多少個歷史文件,超出部分自動刪除。
最后,在處理器上設置日志格式,并將其添加到記錄器中,最后調用各個級別的日志方法記錄不同級別的信息即可。