python logging 日誌按時間間隔自動切分

代碼如下:

import logging
import os
import time
from logging import handlers


def get_logger(file_name=None):
    if file_name is None:
        file_name = time.strftime('%Y%m%d') + '.log'
    logger = logging.getLogger(file_name)
    log_path = './logs/'
    if not os.path.exists(log_path):
        os.makedirs(log_path)
    file_name = log_path + file_name
    # 參數when設置間隔:周(W)、天(D)、時(H)、分(M)、秒(S)切割。backupCount,設置保存的切分後最新的文件數量,默認爲0,即所有分割的日誌都保存
    fh = handlers.TimedRotatingFileHandler(filename=file_name, when='S', encoding='utf-8', backupCount=0)  
    fh.setLevel(logging.INFO)  # 輸出到file的log等級的開關
    # 第三步,定義handler的輸出格式
    formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
    fh.setFormatter(formatter)
    # 第四步,將logger添加到handler裏面
    logger.addHandler(fh)
    logger.setLevel(logging.INFO)
    return logger


if __name__ == '__main__':
    logger = get_logger()
    for i in range(100):
        logger.info(i)
        time.sleep(0.1)

參考鏈接:https://www.cnblogs.com/mangM/p/11200987.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章