使用模塊之前,先進行導入
import logging
在進行開發過程中,需要日志文件幫助我們去定位問題,這就需要區分好每天的日志,TimedRotatingFileHandler 類可以實現每日日志文件的更新。
TimedRotatingFileHandler 類位於 logging.handlers 模塊,它支持基於特定時間間隔的磁盤日志文件輪換,在使用之前需導入
from logging.handlers import TimedRotatingFileHandler
代碼如下(示例):
import os
import logging
from logging.handlers import TimedRotatingFileHandler
import time
log_path = "logs"
def get_logger(name):
logger = logging.getLogger(name)
#判斷目錄是否存在,存在不創建,不存在則創建log目錄
if os.path.exists(log_path):
pass
else:
os.mkdir(log_path)
# 設置日志基礎級別
logger.setLevel(logging.DEBUG)
# 日志格式
formatter = '[%(asctime)s] [%(threadName)s] [line:%(lineno)d] %(levelname)s: %(message)s'
log_formatter = logging.Formatter(formatter)
# 控制台日志
console_handler = logging.StreamHandler()
console_handler.setFormatter(log_formatter)
# info日志文件名
info_file_name = 'info-' + time.strftime(
'%Y-%m-%d', time.localtime(time.time())) + '.log'
"""
#實例化TimedRotatingFileHandler
# filename:日志文件名
# when:日志文件按什麼切分。'S'-秒;'M'-分鐘;'H'-小時;'D'-天;'W'-周
# 這裡需要注意,如果選擇 D-天,那麼這個不是嚴格意義上的'天',是從你
# 項目啟動開始,過了24小時,才會重新創建一個新的日志文件,如果項目重啟,
# 這個時間就會重置。選擇'MIDNIGHT'-是指過了凌晨12點,就會創建新的日志
# interval是時間間隔
# backupCount:是保留日志個數。默認的0是不會自動刪除掉日志。如果超過這個個數,就會自動刪除
"""
info_handler = TimedRotatingFileHandler(filename='logs/' +
info_file_name,
when='MIDNIGHT',
interval=1,
backupCount=3,
encoding='utf-8')
# 設置文件裡寫入的格式
info_handler.setFormatter(log_formatter)
info_handler.setLevel(logging.INFO)
# 添加日志處理器
logger.addHandler(info_handler)
logger.addHandler(console_handler)
return logger
get_logger(name="test")
1、設置存放日志目錄,不存在則創建目錄
2、設置日志的級別'DEBUG','INFO', 'WARNING','ERROR','CRITICAL'
3、設置寫入日志的格式 '[%(asctime)s] [%(threadName)s] [line:%(lineno)d] %(levelname)s: %(message)s'
4、設置控制台輸出
5、設置日志文件名
6、確保每日生成不同日志文件,且能夠區分日志生成時間,可用logging.handlers.TimedRotatingFileHandler進行處理,使用之前先進行導入
7、將日志對象添加到logger裡
8、進行調用即可 get_logger(name="test")