python中logging的用法_python中logging模块的使用

一、基本用法

只需要基本的配置,就可以使用了。

import logging

def fun2():

logging.basicConfig(filename="fun2.log",format="%(asctime)s %(message)s",level=logging.DEBUG)

logging.debug("this is fun2 log")

二、进行详细配置

首先添加一个fileHandler来配置记录的文件,Formatter来设置记录的格式和时间的格式,getLogger是获得一个指定名字记录器,然后给这个logger添加handler,并设置记录级别,然后可以用相应的级别进行记录了。

import logging

def fun1():

logname= "test.log"filehandler= logging.FileHandler(filename=logname,encoding="utf-8")

fmter= logging.Formatter(fmt="%(asctime)s %(message)s",datefmt="%Y-%m-%d %H:%M:%S")

filehandler.setFormatter(fmter)

loger=logging.getLogger(__name__)

loger.addHandler(filehandler)

loger.setLevel(logging.FATAL)

loger.fatal("second log")

其中Formatter配置参数fmt有如下可选参数

%(name)s Name of the logger (logging channel)%(levelno)s Numeric logging level forthe message (DEBUG, INFO,

WARNING, ERROR, CRITICAL)%(levelname)s Text logging level for the message ("DEBUG", "INFO","WARNING", "ERROR", "CRITICAL")%(pathname)s Full pathname of the source file wherethe logging

call was issued (ifavailable)%(filename)s Filename portion of pathname%(module)s Module (name portion of filename)%(lineno)d Source line number wherethe logging call was issued

(ifavailable)%(funcName)s Function name%(created)f Time when the LogRecord was created (time.time()returnvalue)%(asctime)s Textual time when the LogRecord was created%(msecs)d Millisecond portion of the creation time%(relativeCreated)d Time inmilliseconds when the LogRecord was created,

relative to the time the logging module was loaded

(typically at application startup time)%(thread)d Thread ID (ifavailable)%(threadName)s Thread name (ifavailable)%(process)d Process ID (ifavailable)%(message)s The result of record.getMessage(), computed just asthe recordis emitted

三、额外说明

1 可供选择的日志级别有

CRITICAL = 50FATAL=CRITICAL

ERROR= 40WARNING= 30WARN=WARNING

INFO= 20DEBUG= 10NOTSET= 0

Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical()输出不同级别的日志,只有日志等级大于或等于设置的日志级别的日志才会被输出。

2 Handler

Handler对象负责发送相关的信息到指定目的地,常用方法如下

Handler.setLevel(lel):指定日志级别,低于lel级别的日志将被忽略

Handler.setFormatter():给这个handler选择一个Formatter

Handler.addFilter(filt)、Handler.removeFilter(filt):新增或删除一个filter对象

可以通过addHandler()方法为Logger添加多个Handler

logging.handlers.RotatingFileHandler 类似于上面的FileHandler,但是它可以管理文件大小。当文件达到一定大小之后,它会自动将当前日志文件改名,然后创建一个新的同名日志文件继续输出

logging.handlers.TimedRotatingFileHandler 和RotatingFileHandler类似,不过,它没有通过判断文件大小来决定何时重新创建日志文件,而是间隔一定时间就自动创建新的日志文件

logging.handlers.SocketHandler 使用TCP协议,将日志信息发送到网络。

logging.handlers.DatagramHandler 使用UDP协议,将日志信息发送到网络。

logging.handlers.SysLogHandler 日志输出到syslog

logging.handlers.NTEventLogHandler 远程输出日志到Windows NT/2000/XP的事件日志

logging.handlers.SMTPHandler 远程输出日志到邮件地址

logging.handlers.MemoryHandler 日志输出到内存中的制定buffer

logging.handlers.HTTPHandler 通过"GET"或"POST"远程输出到HTTP服务器

各个Handler的具体用法可查看参考书册:

https://docs.python.org/2/library/logging.handlers.html#module-logging.handlers

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值