python第十讲:日志模块

在这里插入图片描述

示例代码如下:

import logging
import logging.handlers
from common.doconstant import log_path
from datetime import datetime
import os
from common.doconf import conf

log_level = conf.get('log', 'log_level')
#使用当前时间给日志文件命名
file_name = datetime.now().strftime('%Y-%m-%d') + '.log'
log_file = os.path.join(log_path, file_name)


class MyLog:
    def __new__(cls, *args, **kwargs):
        # 创建日志收集器对象,名称为mylog
        mylog = logging.getLogger('mylog')
        # 设置日志收集级别
        mylog.setLevel(log_level)

        # 创建日志输出渠道,输出到控制台
        steam_handler = logging.StreamHandler()
        steam_handler.setLevel(log_level)

        # 创建日志输出渠道,输入到文件
        # 普通日志收集器
        # file_handler = logging.FileHandler(log_path, mode='a', encoding='utf8')
        # 按文件大小进行轮转的收集器
        # file_handler = logging.handlers.RotatingFileHandle(log_file,mode='a',encoding='utf8',maxBytes=1024,backupCount=3)
        # 按时间进行轮转的收集器
        file_handler = logging.handlers.TimedRotatingFileHandler(log_file, encoding='utf8', when='M', interval=1, backupCount=3)
        file_handler.setLevel(log_level)

        # 添加两个日志输出渠道绑定到日志收集器中
        mylog.addHandler(steam_handler)
        mylog.addHandler(file_handler)

        # 定义日志输出格式
        format = '%(asctime)s-[%(filename)s-->line:%(lineno)d]-%(message)s'
        # 定义日志输出的方法
        formatter = logging.Formatter(format)
        # 将日志的输出格式绑定在输出渠道上
        steam_handler.setFormatter(formatter)
        file_handler.setFormatter(formatter)
        return mylog
#创建一个实例,方便其他模块调用
log = MyLog()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值