博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python模块-logging的智商上限
阅读量:4612 次
发布时间:2019-06-09

本文共 2425 字,大约阅读时间需要 8 分钟。

logging,故名肆意就是正在进行日志,我艹,这个文化底蕴!

logging是python内置的日志模块,便于日常程序的日志写入和输出

logging共分为5个日志等级,分别是:

debug , info , warning , error , critical (已按等级顺序排列)

其中info是在今后经常应用的日志等级,对于logging来说,默认等级是warning,换句话说就是等于或高于warning等级,才会进行输出,默认warning等级,会输出warning,error,critical等级

代码示例:

1 # 编辑者:闫龙 2 import logging 3 logging.debug("debug") 4 logging.info("info")#最为常用的输出等级 5 logging.warning("warning") 6 logging.error("error") 7 logging.critical("critical") 8  9 #打印结果:10 # WARNING:root:warning11 # ERROR:root:error12 # CRITICAL:root:critical

那么对于logging日志输出格式,和logging的等级配置要如何进行呢?

在logging中内置了两种方式进行操作,第一种是basicConfig,第二种是logger

那么这两种方式有什么区别呢?下面逐一解析:

第一种方式,baseConfig:

代码示例:

1 # 编辑者:闫龙 2 import logging 3 logging.basicConfig( 4     level=logging.DEBUG,#更改日志的默认等级为DEBUG 5     format="%(asctime)s %(message)s", 6     #format中的格式可以在basicConfig的说明文档中查看 7     datefmt="%Y-%m-%d %H:%M:%S", 8     #时间格式,秒原本为%s但在字符串中%s是占位符,所以这里必须使用%S来解决冲突问题 9     filename="test.log",#日志文件10     filemode="a"#文件操作方式为追加写入11 )12 13 logging.debug("debug message")14 logging.info("info")#最为常用的输出等级15 logging.warning("warning")16 logging.error("error")17 logging.critical("critical")18 19 #test.log:20 # 2017-04-30 18:41:23 debug message21 # 2017-04-30 18:41:23 info22 # 2017-04-30 18:41:23 warning23 # 2017-04-30 18:41:23 error24 # 2017-04-30 18:41:23 critical

其优势就是简单易操作,但缺点很多,比如无法屏幕和文件一起输出等,所以才有了第二种方式

第二种方式,logger:常用的日志配置方式

代码示例:

1 # 编辑者:闫龙 2 import logging 3 logger = logging.getLogger() #实例化一个logger对象 4 fh = logging.FileHandler("logger2")#实例化一个文件流对象fh 5 sh = logging.StreamHandler()#实例化一个Stream流对象sh 6 fm = logging.Formatter("%(asctime)s - %(message)s") 7 #实例化一个日志格式对象,fm 8 fh.setFormatter(fm) 9 #将日志格式对象fm添加到fh对象中,让日志在进行文件输出时的格式是fm中定义的10 logger.addHandler(fh)11 #将文件流对象fh添加到logger对象中,让日志输出可以是文件流方式12 logger.addHandler(sh)13 #将文件流对象fh添加到logger对象中,让日志输出可以是Stream流方式14 logger.debug("debug message")15 logger.info("info")#最为常用的输出等级16 logger.warning("warning")17 logger.error("error")18 logger.critical("critical")19 20 #logger2:21 # 2017-04-30 18:53:22,324 - warning22 # 2017-04-30 18:53:22,324 - error23 # 2017-04-30 18:53:22,324 - critical24 # 2017-04-30 18:57:53,341 - warning25 # 2017-04-30 18:57:53,341 - error26 # 2017-04-30 18:57:53,342 - critical27 #打印结果:28 # warning29 # error30 # critical31 # warning32 # error33 # critical

按照Yuan先生的理论,Logger配置方式,就像是吸星大法,就是一个吸的过程,你有什么我吸什么,这种方式确实很好理解

Logger方式将来我们要经常用到,所以一定要记住哦

转载于:https://www.cnblogs.com/DragonFire/p/6790113.html

你可能感兴趣的文章
Movidius软件手册阅读 2017-09-04
查看>>
ytu 1910:字符统计(水题)
查看>>
201671030110 姜佳宇 实验三作业互评与改进
查看>>
mysql-5.6.15 开启二进制文件
查看>>
python的沙盒环境--virtualenv
查看>>
软件自动化测试——入门、进阶与实战
查看>>
BZOJ1878 [SDOI2009]HH的项链 树状数组 或 莫队
查看>>
BZOJ3675 [Apio2014]序列分割 动态规划 斜率优化
查看>>
2016.10.24 继续学习
查看>>
产品功能对标 - 服务授权管理
查看>>
各地IT薪资待遇讨论
查看>>
splay入门
查看>>
带CookieContainer进行post
查看>>
C语言学习笔记--字符串
查看>>
CSS-上下文选择器
查看>>
ionic repeat 重复最后一个时要执行某个函数
查看>>
1.初识代码审计-基础
查看>>
[Vue-rx] Stream an API using RxJS into a Vue.js Template
查看>>
解决VC几个编译问题的方法——好用
查看>>
SPOJ #11 Factorial
查看>>