logging文档

logging.basicConfig函数各参数:

filename: 指定日志文件名
filemode: 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示:
% (levelno)s: 打印日志级别的数值
% (levelname)s: 打印日志级别名称
% (pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]
% (filename)s: 打印当前执行程序名
% (funcName)s: 打印日志的当前函数
% (lineno)d: 打印日志的当前行号
% (asctime)s: 打印日志的时间
% (thread)d: 打印线程ID
% (threadName)s: 打印线程名称
% (process)d: 打印进程ID
% (message)s: 打印日志信息

datefmt: 指定时间格式,同time.strftime()
level: 设置日志级别,默认为logging.WARNING
	    CRITICAL = 50
	    FATAL = CRITICAL
	    ERROR = 40
	    WARNING = 30
	    WARN = WARNING
	    INFO = 20
	    DEBUG = 10
    	NOTSET = 0
stream: 指定将日志的输出流,可以指定输出到sys.stderr, sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略

例子:

import logging
logging.basicConfig(level=logging.WARNING,
                    format='%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',
                    datefmt='%a, %d %b %Y %H:%M:%S',
                    filename='parser_result.log',
                    filemode='w')


# logging打印信息函数:
logging.debug('This is debug message')
logging.info('This is info message')
logging.warning('This is warning message')

# 最终文件内只会打印'This is warning message' 该条内容

类:

class Loggers(object):
    """
    日志处理类
    """

    def __init__(self, path, level=logging.DEBUG):
        """
        :param path: 日志路径
        :param level: 日志打印级别
        """
        # 创建一个日志器logger并设置其日志级别为DEBUG
        self.logger = logging.getLogger(path)
        self.logger.setLevel(logging.DEBUG)

        # 创建一个日志器logger并设置其日志级别为DEBUG
        handler = logging.StreamHandler(sys.stdout)
        handler.setLevel(logging.DEBUG)

        # 创建一个格式器formatter并将其添加到处理器handler
        formatter = logging.Formatter("%(asctime)s - %(levelname)s: %(message)s")
        handler.setFormatter(formatter)

        # 为日志器logger添加上面创建的处理器handler
        self.logger.addHandler(handler)

        # 设置文件日志
        file_handler = logging.FileHandler(path)
        file_handler.setFormatter(formatter)
        file_handler.setLevel(logging.DEBUG)
        self.logger.addHandler(file_handler)

    def debug(self, message):
        """
        :param message: debug信息
        :return:
        """
        self.logger.debug(message)

    def info(self, message):
        """
        :param message: info信息
        :return:
        """
        self.logger.info(message)

    def warn(self, message):
        """
        :param warn: warn 信息
        :return:
        """
        self.logger.warning(message)

    def critical(self, message):
        """
        :param message: critical 信息
        :return:
        """
        self.logger.critical(message)

    def error(self, message):
        """
        :param message: error 信息
        :return:
        """
        self.logger.error(message)

loguru

import sys

from loguru import logger


class Loggers(object):
    def __init__(self, path):
        self.logger = logger
        logger.remove(None)
        logger.add(path,
                   level='INFO',
                   rotation='00:00',
                   retention="7 days",
                   compression="zip",
                   format="{time:YYYY-MM-DD HH:mm:ss} | {level} | {file}:{name}:{function}:{line} | {message}",
                   enqueue=True,
                   encoding="utf-8",
                   colorize=True,
                   #  serialize=True,  # 是否转成json
                   backtrace=True,
                   diagnose=True,
                   catch=True)
        logger.add(sys.stdout, colorize=True,
                   format="<green>{time:YYYY-MM-DD HH:mm:ss}</green> <level>{message}</level>")

    def debug(self, message):
        """
        :param message: debug信息
        :return:
        """
        self.logger.debug(message)

    def info(self, message):
        """
        :param message: info信息
        :return:
        """
        self.logger.info(message)

    def warning(self, message):
        """
        :param warn: warn 信息
        :return:
        """
        self.logger.warning(message)

    def critical(self, message):
        """
        :param message: critical 信息
        :return:
        """
        self.logger.critical(message)

    def error(self, message):
        """
        :param message: error 信息
        :return:
        """
        self.logger.error(message)

    def success(self, message):
        """
        :param message: success 信息
        :return:
        """
        self.logger.success(message)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值