日志的基本用法

目标

  1. 掌握如何设置日志级别

  2. 掌握如何设置日志格式

  3. 掌握如何将日志信息输出到文件中

1. logging模块

Python中有一个标准库模块logging可以直接记录日志

1.1 基本用法

python 复制代码
import logging
logging.debug("这是一条调试信息")
logging.info("这是一条普通信息")
logging.warning("这是一条警告信息")
logging.error("这是一条错误信息")
logging.critical("这是一条严重错误信息")

1.2 设置日志级别

logging中默认的日志级别为WARNING,程序中大于等于该级别的日志才能输出,小于该级别的日志不会被打印出 来。

设置日志级别

python 复制代码
logging.basicConfig(level=logging.DEBUG)

如何选择日志级别

在开发环境和测试环境中,为了尽可能详细的查看程序的运行状态来保证上线后的稳定性,可以使用DEBUG 或INFO级别的日志获取详细的日志信息,这是非常耗费机器性能的。

在生产环境中,通常只记录程序的异常信息、错误信息等(设置成WARNING或ERROR级别),这样既可以 减小服务器的I/O压力,也可以提高获取错误日志信息的效率和方便问题的排查。

1.3 设置日志格式

默认的日志的格式为:

日志级别:Logger名称:日志内容

自定义日志格式:

python 复制代码
logging.basicConfig(format="%(levelname)s:%(name)s:%(message)s")

format参数中可能用到的格式化信息:

示例代码:

python 复制代码
import logging
fmt = '%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'
logging.basicConfig(level=logging.INFO, format=fmt)
logging.debug("调试")
logging.info("信息")
logging.warning("警告")
logging.error("错误")

1.4 将日志信息输出到文件中

默认情况下Python的logging模块将日志打印到了标准输出中(控制台) 将日志信息输出到文件中:

python 复制代码
logging.basicConfig(filename="a.log")

示例代码:

python 复制代码
import logging
fmt = '%(asctime)s %(levelname)s [%(name)s] [%(filename)s(%(funcName)s:%(lineno)d)] - %(message)s'
logging.basicConfig(filename="a.log", level=logging.INFO, format=fmt)
logging.debug("调试")
logging.info("信息")
logging.warning("警告")
logging.error("错误")
相关推荐
LuckyLay1 分钟前
1.1.2 运算符与表达式——AI教你学Django
python·django
学不会就看2 分钟前
Django--01基本请求与响应流程
后端·python·django
Tiandaren4 小时前
Selenium 4 教程:自动化 WebDriver 管理与 Cookie 提取 || 用于解决chromedriver版本不匹配问题
selenium·测试工具·算法·自动化
nbsaas-boot5 小时前
Java 正则表达式白皮书:语法详解、工程实践与常用表达式库
开发语言·python·mysql
仗剑_走天涯5 小时前
基于pytorch.nn模块实现线性模型
人工智能·pytorch·python·深度学习
chao_7895 小时前
二分查找篇——搜索旋转排序数组【LeetCode】两次二分查找
开发语言·数据结构·python·算法·leetcode
12点一刻10 小时前
搭建自动化工作流:探寻解放双手的有效方案(2)
运维·人工智能·自动化·deepseek
未来之窗软件服务10 小时前
东方仙盟AI数据中间件使用教程:开启数据交互与自动化应用新时代——仙盟创梦IDE
运维·人工智能·自动化·仙盟创梦ide·东方仙盟·阿雪技术观
chao_78910 小时前
二分查找篇——搜索旋转排序数组【LeetCode】一次二分查找
数据结构·python·算法·leetcode·二分查找
烛阴10 小时前
Python装饰器解除:如何让被装饰的函数重获自由?
前端·python