python logging模块学习
logging 是对程序运行中的日志进行输出记录,用户在程序中设置在哪个地方输出什么信息,方便进行之后问题的排查。
logging输出有两种方式:输出至控制台 、 输出至文件
输出至控制台:
import logging
logging.warning('Watch out!')
logging.info('I told you so')
运行上述代码,我们会在控制台看到如下输出:
WARNING:root:Watch out!
info消息并没有出现,这是因为logging默认的输出等级是warn 。
如果想要更改logging的输出等级:在使用logging输出日志前加上语句: logging.basicConfig(level=logging.INFO)
输出至文件:
import logging
logging.basicConfig(filename="mylog.log")
logging.info("I told you so")
logging.warning("Watch out!")
通过在logging.basicConfig 中设置filename,就可以将日志信息输出至指定文件中保存了。同样,默认等级还是Warn。
多次运行上述代码,会发现每次输出的日志信息都会追加在文件后面。

如果想要每次都清空之前的日志信息:使用 filemode 参数,设置 filemode = "w" 。 如果不设置,filemode 默认为 "a"
logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO)
另外,对于basicConfig() 的调用应该在 info()、warning() 的前面: 因为他被设定为一次性的配置,只有第一次调用会产生操作,随后调用不会再生效(如果没有在一开始指定,那么就会走默认的配置)
自定义日志展示格式:
如果想在每条日志上展示更多的信息,如显示等级、时间日期、模块、行数等,使用basicConfig 中的 format参数来实现
import logging
logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s')
logging.info("I told you so")
logging.warning("Watch out!")
# 文件日志展示
2021-10-29 15:50:13,378 root INFO file_logging:10 I told you so
2021-10-29 15:50:13,380 root WARNING file_logging:11 Watch out!
日期/时间展示的默认格式如上,如果想要更多的控制日期/时间展示格式,使用datefmt参数
import logging
logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')
logging.info("I told you so")
logging.warning("Watch out!")
# 文件日志展示
10/29/2021 03:53:03 PM root INFO file_logging:10 I told you so
10/29/2021 03:53:03 PM root WARNING file_logging:11 Watch out!
python logging模块学习的更多相关文章
- Python logging 模块学习
logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...
- python logging模块学习(转)
前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...
- python logging模块使用流程
#!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') logging ...
- (转)python logging模块
python logging模块 原文:http://www.cnblogs.com/dahu-daqing/p/7040764.html 1 logging模块简介 logging模块是Python ...
- python logging模块使用教程
简单使用 #!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') lo ...
- python logging模块【转载】
转自:https://www.cnblogs.com/dahu-daqing/p/7040764.html 参考:老顽童log模块,讲的很细致,基本上拿到手就可以直接用了,很赞 1 logging模块 ...
- python logging模块可能会令人困惑的地方
python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...
- python logging模块使用
近来再弄一个小项目,已经到收尾阶段了.希望加入写log机制来增加程序出错后的判断分析.尝试使用了python logging模块. #-*- coding:utf-8 -*- import loggi ...
- 读懂掌握 Python logging 模块源码 (附带一些 example)
搜了一下自己的 Blog 一直缺乏一篇 Python logging 模块的深度使用的文章.其实这个模块非常常用,也有非常多的滥用.所以看看源码来详细记录一篇属于 logging 模块的文章. 整个 ...
- python - argparse 模块学习
python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...
随机推荐
- 2021-08-17:cocos creator 如何控制 spine 动画的进度
// 传入spine与进度比例(注意初始要把spine的TimeScale设置为0)updateSpine(spine: sp.Skeleton,rate: number) { const track ...
- Vue-cli创建的项目结构分析,各初始化文件解释说明
结构图: 一.项目结构说明 1..gitignore :git的忽略文件(哪些文件或文件夹不想接受git管理的,可在此文件配置) 2.babel.config.js:babel控制文件,ES6=&g ...
- DOM06~
Window 对象 BOM (浏览器对象模型) 定时器-延时函数 js 执行机制 location 对象 navigator 对象 history 对象 BOM BOM (Browser Object ...
- js 页面小数相加精度问题
解决方法:把需要计算的数字升级(乘以10的n次幂)成计算机能够精确识别的整数,等计算完毕再降级(除以10的n次幂),这是大部分编程语言处理精度差异的通用方法. 比如计算0.33和5.2的和,则需要把( ...
- js获取的 后端的列表。
1.引号被转码 处理办法 {% autoescape off %} var tmp = '{{ data1 }}'; var tmp = '{{ data2 }}'; {% endautoescape ...
- PaaS和SaaS的区别是什么?
PaaS是Platform-as-a-Service的缩写,意思是"平台即服务" SaaS是Software-as-a-Service的缩写,意思是"软件即服务" ...
- mysql查询数据是否连续增长
记录一次比较查询,需求是比较内容是否一次比一次高,用来作为标签依据 大致问题如下 简化: 班级中有若干人,若干次考试.需要查询某人在考试时成绩越来越好(分数是每次都有增长) 思路: 1.使用group ...
- 「postOI」Cross Swapping
题意 给出一个 \(n\times n\) 的矩阵 \(A\),你可以进行下述操作任意多次:指定整数 \(k\)(\(1\le k\le n\)),使 \(A_{ni}\) 与 \(A_{in}\) ...
- AcWing 839. 模拟堆 2022/5/30
关键代码: void head_swap(int a, int b){ swap(ph[hp[a]], ph[hp[b]]); swap(hp[a], hp[b]); swap(h[a], h[b]) ...
- Apache SSI远程命令执行漏洞复现
漏洞原理:当目标服务器开启了SSI与CGI支持,就可以上传shtml文件,并利用语法执行任意命令,例如<!- - #exec cmd="ls"- ->,cmd后面跟要执 ...