python3 logging 定制formatter_Python3-logging日志模块

日志模块

logging模块默认收集的日志是warning以上等级的

日志一共分为5个等级,从低到高分别是:

级别

说明

DEBUG

输出详细的运行情况,主要用于调试

INFO

确定一切按预期运行,一般用于输出重要运行情况

WARNING

一些意想不到的事情发生了(比如:“警告:内存空间不足”),但是这个软件还能按预期工作,在不久的将来,会出现问题

ERROR

发生错误,软件没能执行一些功能,还可以继续执行

CRITICAL

一个严重的错误,表名程序本身可能无法继续运行

导包

import logging

获取默认的日志收集器root

my_log = logging.getLogger()

设置默认的日志收集器等级

my_log.setLevel('DEBUG')

自定义日志收集器

一、创建一个名为python的日志收集器

my_log = logging.getLogger('python')

二、设置日志收集器的等级

my_log.setLevel('DEBUG')

三、添加输出渠道

① 输出到控制台

####### 1、创建一个输出到控制台的输出渠道

sh = logging.StreamHandler()

####### 2、设置输出等级

sh.setLevel('ERROR')

####### 3、将输出渠道绑定到日志收集器上

my_log.addHandler(sh)

② 输出到文件

####### 1、创建一个输出到文件中的输出渠道

fh = logging.FileHandler('log.log', encoding='utf8')

####### 2、设置输出等级

fh.setLevel('DEBUG')

####### 3、将输出渠道绑定到日志收集器上

my_log.addHandler(fh)

四、设置日志输出格式

1、创建一个日志输出格式

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

2、将输出格式和输出渠道进行绑定

sh.setFormatter(formatter)

fh.setFormatter(formatter)

日志的轮转

① 按文件大小进行轮转

from logging.handlers import RotatingFileHandler

创建一个按文件大小轮转的文件输出渠道

fh = RotatingFileHandler(filename=file_name,

mode='a',

encoding='utf8',

maxBytes=1024 * 1024 * 20,

backupCount=3)

参数:

maxBytes:设置文件的大小(单位:字节)

1024字节=1kb

1024kb = 1Mb

backupCount:轮转的文件数量

② 按时间进行轮转

from logging.handlers import TimedRotatingFileHandler

创建一个按时间进行轮转的文件输出渠道

fh = TimedRotatingFileHandler(filename=file_name,

encoding='utf8',

when='S',

interval=1,

backupCount=6)

参数:

interval:设置时间间隔

when:设置间隔单位(默认H)

S-Seconds(秒)

M-Minutes(分钟)

H-Hours(小时)

D-Day(天)

backupCount:轮转的文件数量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值