logging模块学习

文章介绍了Python中的logging模块基础知识,包括基本配置参数如filename、level和format,日志等级如debug、info和error等。示例展示了如何设置日志格式、保存日志到文件以及在多模块中使用日志。还提到了logging的四大组件:logger、handler、filter和formatter,并提供了捕获异常并记录堆栈信息的例子。
摘要由CSDN通过智能技术生成

logging 基础知识:

logging的基础知识:
"""
logging.basicConfig()参数介绍
filename:创建一个 FileHandler,使用指定的文件名,而不是使用 StreamHandler。
filemode:如果指明了文件名,指明打开文件的模式(如果没有指明 filemode,默认为 ‘a’)。
format;handler 使用指明的格式化字符串。
datefmt:handler 使用指明的格式化字符串。
level:指明根 logger 的级别。
stream:使用指明的流来初始化 StreamHandler。该参数与 ‘filename’ 不兼容,如果两个都有,‘stream’ 被忽略。

关于日志模块
#关于模块的使用
#日志的等级划分
debug :调式信息,进行程序诊断时候使用
info:普通信息,确认程序按照预期进行
warning:警告信息
error:错误信息
critical:危险错误,严重的错误信息

formater格式
%(asctime)s    日志发生的时间
%(levelname)s  日志的等级
%(message)s  日志文本内容
%(name)s  日志器名称
%(pathname)s  调用日志记录函数文件全路径
%(filename)s  调用日志记录函数的文件
%(funcName)s  调用日志记录函数名称
%(lineno)d  日志函数的代码所在的行号
%(process)d:打印进程 ID
%(threadName)s:打印线程名称
"""

案例1:关于format 和logging的学习

#logging formater 格式学习 以及logging等级
import logging
# # 设置输出的格式
LOG_FORMAT = "时间:%(asctime)s - 日志等级:%(levelname)s - 日志信息:%(message)s"
# 对logger进行配置——日志等级和输出格式 大于该等级的日志才会输出
logging.basicConfig(level=logging.WARNING, format=LOG_FORMAT)
 #logging.level(message)创建一条level级别的日志
logging.debug("This is a debug log")
logging.info("This is a info log")
logging.warning("This is a warning log")
logging.error("This is a error log")
logging.critical("This is a critical log")

案例2:日志保存到文件

import logging
# # 设置输出的格式
LOG_FORMAT = "时间:%(asctime)s - 日志等级:%(levelname)s - 日志信息:%(message)s"
# 对logger进行配置——日志等级和输出格式 大于该等级的日志才会输出
logging.basicConfig(level=logging.WARNING, format=LOG_FORMAT,filename='save.log')
 #logging.level(message)创建一条level级别的日志
logging.debug("This is a debug log")
logging.info("This is a info log")
logging.warning("This is a warning log")
logging.error("This is a error log")
logging.critical("This is a critical log")

#案例3 多模块的日志信息打印
创建一个logging.py 文件

import logging
import my_log
def main():
    logging.basicConfig(filename="666myfile.log", level=logging.DEBUG)
    logging.info("start")
    my_log.func()
    logging.info("end")
if __name__ == "__main__":
     main()

创建一个my_log.py文件

import logging

def func():
    for item in range(5):
        logging.info("printf message of log")

执行logging,py文件,在666myfile.log里面会出现如下结果

INFO:root:start
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:printf message of log
INFO:root:end

#logging 的四大组件
在这里插入图片描述

logger:日志器(记录器),提供日志接口,供应用代码使用。

handler:处理器,将日志记录发送到合适的目的地。

filter:过滤器,提供一种优雅的方式决定一个日志记录是否发送到handler。

formatter:格式化器,指定日志输出的格式。

案例3 打印堆栈信息

import requests
import logging

logging.basicConfig(
    filename='666cmdb.log',
    format='%(asctime)s - %(name)s - %(levelname)s - %(module)s: %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S %p',
    level=logging.ERROR
)
try:
    requests.get("www.google.com")

except Exception as e:
    msg = str(e)#内部调用__str__方法
    logging.error(msg,exc_info=True)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

土豆爱牛肉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值