python logging 用法

级别排序

日志等级(LEVEL)描述
CRITICAL打印critical级别,一个严重的错误,这表明程序本身可能无法继续运行
ERROR打印error,critical级别的日志,更严重的问题,软件没能执行一些功能
WARNING打印warning,error,critical级别的日志,一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如。磁盘空间低”),这个软件还能按预期工作
INFO打印info,warning,error,critical级别的日志,确认一切按预期运行
DEBUG打印全部的日志,详细的信息,通常只出现在诊断问题上

部分名词解释

Logging.Formatter:这个类配置了日志的格式,在里面自定义设置日期和时间,输出日志的时候将会按照设置的格式显示内容。
Logging.Logger:Logger是Logging模块的主体,进行以下三项工作:

  1. 为程序提供记录日志的接口
  2. 判断日志所处级别,并判断是否要过滤
  3. 根据其日志级别将该条日志分发给不同handler
    常用函数有:
    Logger.setLevel() 设置日志级别
    Logger.addHandler() 和 Logger.removeHandler() 添加和删除一个Handler
    Logger.addFilter() 添加一个Filter,过滤作用
    Logging.Handler:Handler基于日志级别对日志进行分发,如设置为WARNING级别的Handler只会处理WARNING及以上级别的日志。
    常用函数有:
    setLevel() 设置级别
    setFormatter() 设置Formatter

调用生成log文件

import os
import logging
from logging.handlers import RotatingFileHandler
from config import settings


class Logger(object):
    def __init__(self, log_name=""):
        logs_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + os.sep + "logs"
        if not os.path.exists(logs_dir):
            os.mkdir(logs_dir)
        if log_name:
            self.log_path = logs_dir + os.sep + log_name
        else:
            self.log_path = logs_dir + os.sep + "manage.log"

        handler = RotatingFileHandler(self.log_path, maxBytes=settings.LOG_MAX_SIZE, backupCount=settings.LOG_MAX_COUNT)

        formatter = logging.Formatter('[%(asctime)s] %(levelname)s %(module)s [line:%(lineno)d] %(message)s')

        handler.setFormatter(formatter)

        self.logger = logging.getLogger(self.log_path)
        self.logger.setLevel(10)
        self.logger.addHandler(handler)

        console = logging.StreamHandler()
        console.setLevel(40)
        self.logger.addHandler(console)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值