Python:添加log日志

一.日志级别

日志一共分成5个等级﹐从低到高分别是︰

1.DEBUG
2. INFO
3. WARNING
4. ERROR
5. CRITICAL

说明:
● DEBUG∶详细的信息,通常只出现在诊断问题上
● INFO∶确认一切按预期运行
● WARNING∶一个迹象表明,一些意想不到的事情发生了,或表明一些问题在不久的将来(例如"磁盘空间低")。这个软件还能按预期工作。
● ERROR︰更严重的问题,软件没能执行一些功能
● CRITICAL:一个严重的错误,这表明程序本身可能无法继续运行

这5个等级﹐也分别对应5种打日志的方法∶debug 、 info 、warning 、error 、critical。默认的是WARNING﹐当在WARNING或之上时才被跟踪。

·

二.日志输出

日志的输出(记录跟踪)有两种方式:

1.在控制台中输出
2.记录到文件中(日志文件)

代码实例:

1.在控制台中输出:

import logging


# 日志基础配置,最低打印的等级为DEBUG
logging.basicConfig(level=logging.DEBUG,
        # 设置输出格式,年月日分秒毫秒,行数,等级名,打印的信息
        format="%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

logging.debug("----debug message----")
logging.info("----info message----")
logging.warning("----warning message----")
logging.error("----error message----")
logging.critical("----critical----")

实验结果:
在这里插入图片描述

·

2.记录到文件中:
(只需要在logging.basicConfig函数中设置好输出文件的文件名和写文件的模式)

import logging


# 日志基础配置,最低打印的等级为DEBUG
logging.basicConfig(level=logging.DEBUG,
        # 将日志信息打印到文件中(文件不存在可自动创建),设置该文件的使用权限
        filename="./log.txt",
        filemode="a",
        # 设置输出格式,年月日分秒毫秒,行数,等级名,打印的信息
        format="%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")

logging.debug("----debug message----")
logging.info("----info message----")
logging.warning("----warning message----")
logging.error("----error message----")
logging.critical("----critical----")

实验结果:
在这里插入图片描述

·

3.既能打印在控制台又能打印到文件中:

import logging


# 第一步,创建一个logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log等级总开关

# 第二步, 创建一个handler,用于写入日志文件
logfile = "./log.txt"
fh = logging.FileHandler(logfile, mode='a')
fh.setLevel(logging.DEBUG) # 输出到file的log等级开关

# 第三步,再创建一个handler,用于输出控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) # 输出到控制台的log等级开关

# 第四步,定义handler的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)

# 第五步,将logger添加到handler里面
logger.addHandler(fh)
logger.addHandler(ch)


# 日志
logging.debug("----debug message----")
logging.info("----info message----")
logging.warning("----warning message----")
logging.error("----error message----")
logging.critical("----critical----")

实验结果:
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

此时一位小白路过

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

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

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

打赏作者

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

抵扣说明:

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

余额充值