Python模块-logging模块

*爱你&永不变心* 提交于 2019-12-20 14:17:11

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

简介

logging模块用于输出日志信息,可以按照不同日志等级划分反馈给用户,默认以追加形式添加日志信息

一般情况下分的五种等级:

优先级 等级
1 debug()
2 info()
3 warning()
4 error()
5 critical()

logging.basicConfig()

logging配置信息,实现打印日志的基础配置信息

logging配置参数

参数 释义
filename 指定日志文件名
filemode 和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format 指定输出的格式和内容
datefmt 指定时间格式,同time.strftime()
level 设置日志级别,默认为logging.WARNING
stream 指定将日志的输出流,如:sys.stderr,sys.stdout或文件,默认sys.stderr,stream和filename同时指定,stream被忽略

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 打印日志信息

示例

改变默认等级并输出日志内容

# -*- coding:utf8 -*-
import logging
logging.basicConfig(
    level = logging.DEBUG,          #变更默认等级
    filename = "logging.log",       #输出日志到文件
    format = "[%(lineno)d] %(asctime)s 【%(message)s】 " #定义格式,显示行号、时间、日志信息
)
logging.debug("this is debug")
logging.info("this is info")
logging.warning("this is warning")
logging.error("this is error")
logging.critical("this is critical")

logging.log内容

[8] 2018-04-05 16:15:34,486 【this is debug】 
[9] 2018-04-05 16:15:34,487 【this is info】 
[10] 2018-04-05 16:15:34,487 【this is warning】 
[11] 2018-04-05 16:15:34,487 【this is error】 
[12] 2018-04-05 16:15:34,487 【this is critical】 

logging.getLogger()

logging对象

参数 释义
logging.getLogger() 创建对象
logger.setLevel() 定义等级
logging.Formatter() 定义格式
logging.FileHandler() 定义输出文件信息
logging.StreamHandler() 定义屏幕打印信息
.setFormatter() 格式学习
.addHandler() 对象添加学习内容

使用示例

# -*- coding:utf8 -*-
import logging

logger = logging.getLogger("root")          #定义用户创建对象
logger.setLevel(logging.DEBUG)              #定义默认等级

format1 = logging.Formatter("[%(lineno)d] %(asctime)s 【%(message)s】 ")  #定义输出格式1,用于文件输出
format2 = logging.Formatter("%(asctime)s %(message)s ")                   #定义输出格式2,用于屏幕输出

a = logging.FileHandler("test.log")         #定义文件存储位置和名称
b = logging.StreamHandler()                 #定义屏幕打印信息

a.setFormatter(format1)                     #学习文件输出格式
b.setFormatter(format2)                     #学习屏幕输出格式

logger.addHandler(a)                        #学习文件存储功能
logger.addHandler(b)                        #学习屏幕打印功能

logger.debug("this is debug")
logger.info("this is info")
logger.warning("this is warning")
logger.error("this is error")
logger.critical("this is critical")

屏幕输出内容

2018-04-05 17:49:45,746 this is debug 
2018-04-05 17:49:45,746 this is info 
2018-04-05 17:49:45,746 this is warning 
2018-04-05 17:49:45,746 this is error 
2018-04-05 17:49:45,746 this is critical 

文件输出内容

[33] 2018-04-05 17:49:45,746 【this is debug】 
[34] 2018-04-05 17:49:45,746 【this is info】 
[35] 2018-04-05 17:49:45,746 【this is warning】 
[36] 2018-04-05 17:49:45,746 【this is error】 
[37] 2018-04-05 17:49:45,746 【this is critical】 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!