python 日志文件配置

自己搭建的日志文件,日常使用可以满足了

import datetime
import logging.handlers
import os
import logging
from logging.handlers import RotatingFileHandler

from init import log_dir

# 验证日志文件夹是否存在,不存在创建一个新的文件夹
def make_dir(make_dir_path):
    path = make_dir_path.strip()
    if not os.path.exists(path):
        os.makedirs(path)
    return path


def get_rotaing_handler(filename, log_level):
    if filename:
        handler = RotatingFileHandler(filename, maxBytes=1024 * 1024 * 100, backupCount=100, encoding="utf8")
    else:
        handler = RotatingFileHandler("./log.log", maxBytes=1024 * 1024 * 100, backupCount=100, encoding="utf8")
    formatter = logging.Formatter("%(asctime)s - %(levelname)s - %(filename)s[:%(lineno)d]- %(message)s")
    handler.setFormatter(formatter)
    handler.setLevel(log_level)
    return handler


def root_roating_handler(log_path, log_level):
    global _log_root_handler

    if (_log_root_handler is not None
            and _log_root_handler in logging.root.handlers):
        logging.root.removeHandler(_log_root_handler)

    logging.root.setLevel(logging.NOTSET)
    _log_root_handler = get_rotaing_handler(log_path, log_level)
    logging.root.addHandler(_log_root_handler)


_log_root_handler = None

if __name__ == '__main__':
	 # 日志等级
    log_level = "INFO"
   	# 文件名
    log_file = "img" + datetime.datetime.now().strftime(".%Y%m%d.log")
    # 路径
    log_path = os.path.join(log_dir, log_file)
     # 检验并创建路径
    make_dir(log_dir)
    # 初始化logging
    root_roating_handler(log_path, log_level)
    
    logging.debug('debug message')  # 低级别的:排错信息
    logging.info('debug message')  # 正常信息
    logging.warning('warning message')  # 警告信息
    logging.error('error message')  # 错误信息
    logging.critical('critical message')  # 高级别的  : 严重错误信息

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值