python 自定义日志器封装(一)

思路:使用自定义封装日志器进行日志的输出:按单个文件,按文件大小,按时间。如果初始化异常则使用默认日志器

步骤如下:
1. 默认日志器,默认日志器使用按天分割日志
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# Author  : holidaylzz
# Time    : 2020/5/10

import time
import yaml.scanner
import logging
import logging.config
from logging.handlers import TimedRotatingFileHandler
from core.util.pathUtil import PathUtil


def basic_logger():
    """
    默认日志器
    :return:
    """
    path_util = PathUtil()
    # 在项目中创建日志文件路径,已创建则忽略
    path_util.makedirs('log')
    # 日志格式
    fmt = logging.Formatter('%(asctime)s - %(thread)s - [%(levelname)s] %(pathname)s - %(funcName)s  : %(message)s')
    # 日志等级
    level = logging.INFO
    # 日志器
    logger = logging.getLogger()
    logger.setLevel(level)

    # 使用多个不同等级的handler输出到不同日志文件
    #info handler
    info_filename = path_util.get_project_file_path('log/apiTest.log')
    tft_info_handler = TimedRotatingFileHandler(filename=info_filename, when='midnight', backupCount=10, encoding='UTF-8')
    tft_info_handler.setLevel(logging.INFO)
    tft_info_handler.setFormatter(fmt)
    logger.addHandler(tft_info_handler)

    # error handler
    error_filename = path_util.get_project_file_path('log/apiTest_error.log')
    tft_error_handler = TimedRotatingFileHandler(filename=error_filename, when='midnight', backupCount=10, encoding='UTF-8')
    tft_error_handler.setLevel(logging.ERROR)
    tft_error_handler.setFormatter(fmt)
    logger.addHandler(tft_error_handler)

    # warn handler
    warn_filename = path_util.get_project_file_path('log/apiTest_warn.log')
    tft_warn_handler = TimedRotatingFileHandler(filename=warn_filename, when='midnight', backupCount=10, encoding='UTF-8')
    tft_warn_handler.setLevel(logging
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值