python之logging

logging模块四大组件:logger、Handler、Filter、Formatter
1) logger:可供程序直接调用的接口。
2) Handler:处理器,将日志记录发送至合适路径
3) Filter:过滤器,更精细地控制哪些日志输出
4) Formatter:格式器。控制日志信息的最终输出格式

Logger
basicConfig(**kwargs) 为日志记录系统做基本配置
filename: 指定日志文件名称
filemode: 指定打开文件的模式(未指定则默认为‘a’)
format: 为处理程序使用指定格式的字符串
datefmt:使用指定的日期格式
level: 设置根记录器(root logger)级别

import logging

#创建Logger记录实例
logging.basicConfig(level=logging.INFO)

Handler

  1. StreamHandler:将日志记录发送到诸如sys.stdout、sys.stderr或任何类似文件流的对象。
  2. FileHandler:将日志消息发送到磁盘文件,默认情况下文件大小会无限增长
    3)RotatingHandler: 将日志消息发送到磁盘文件,并支持日志文件按大小切割
    4)HTTPHandler: 将日志消息以Get或Post方式发送给一个Http服务器
    5)SMTPHandler:将日志消息发送给一个指定的Email地址
    ……

Filter
有多个Handlers和Loggers可使用Filters来过滤

Formatter
使用Formatter对象设置日志信息的规则、结构和内容,默认的时间格式为”%Y-%m-%d %H:%M:%S”
格式 描述
%(levelno)s 打印日志级别的数值
%(levelname)s 打印日志级别名称
%(pathname)s 打印当前执行程序的路径
%(filename)s 打印当前执行程序的名称
%(funcName)s 打印日志的当前函数
%(lineno)d 打印日志的当前行号
%(asctime)s 打印日志的时间
%(thread)d 打印线程ID
%(threadName)s 打印线程名称
%(process)d 打印进程ID
%(message)s 打印日志信息

log.conf

#配置logger信息。必须包含一个名为root的logger,当使用无参函数
#logging.getLogger()时,默认返回root这个logger。其他自定义logger
#可以通过logging.getLogger(“name”)方式进行调用。
[loggers]
keys = root, infoLogger

#logger_xxx:对loggers中声明的logger进行逐个配置,且要一一对应,必须指定level和handlers。
[logger_root]
level = DEBUG
handlers = consoleHandler, fileHandler

[logger_infoLogger]
handlers = consoleHandler, fileHandler
qualname = infoLogger   #qualname在logger层级中的名字
propagate = 0           #取值0,输出日志但不传递消息;取值1,输出日志并传递消息


[handlers]
keys = consoleHandler, fileHandler #输出流向:控制台,文件

#handler_xxx:对handlers中声明的handler进行逐个配置,必须指定class和args,args指定输出路径
[handler_consoleHandler]
class = StreamHandler
level = INFO
formatter =form1
args = (sys.stdout,)

[handler_fileHandler]
class = FileHandler
level = INFO
formatter =form2
args = ('log','a')

[formatters]
keys = form1,form2

[formatter_form1]
Format = %(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s:%(message)s

[formatter_form2]
Format = %(asctime)s %(filename)s[line: %(lineno)d] %(levelname)s:%(message)s
import logging
import logging.config

#创建Logger记录器实例
logging.config.fileConfig('log.conf')  #读取配置文件
#输出日志到控制台,获取的是root对应的logger
console_logger = logging.getLogger()

fileConfig(fname, defaults=None, disable_existing_loggers=True)方法:从ConfigParse格式的文件中读取日志配置,同时覆盖当前脚本中的log配置,以日志配置文件为准。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值