python-日志模块-logging
日志模块
导入
import logging
logging,就是日志单词 log的现在进行时
一个动作正在进行
吃饭,吃饭中
打怪,打怪中
日志的五个级别
日志级别的用法
模块名.方法名()
logging.级别(str要显示的内容)
例子:
import loggingnum = input("请输入一个数字")try:int_num = int(num)
except:logging.error("非法的输入{}".format(num))
print('结束了')
日志的运行级别
默认的运行级别是warning,警告级别
修改运行级别,可以让更低级别的被显示出来
logging.basicConfig(level=logging.DEBUG)
日志保存为文件
新增 filename配置
logging.basicConfig(level=logging.DEBUG,filename=文件的路径
)
当设置了日志保存在文件时
信息就不会再屏幕上显示了
修改日志的保存模式
默认是追加模式
如果希望通过定入赋盖模式
filemode="w",
logging.basicConfig(level=logging.DEBUG,filename="mylog.log",filemode="w",
)
格式化输出日志显示的内容
回顾以前的格式化输出
用一个例子来回顾
m = "我的名字叫%s,我的身高是%.2f,我今年%d,我的学号是%04d" %("吕小布", 1.7444, 22, 32)
print(m)
结果
C:\Users\python_hui\Anaconda3\python.exe G:/教学管理系统1907/oneone/test.py
我的名字叫吕小布,我的身高是1.74,我今年22,我的学号是0032
Process finished with exit code 0
对于logging模块中,日志的格式化输出
用法格式
format = "%(类型)s"
更多类型
演示代码
import logginglogging.basicConfig(level=logging.DEBUG,filename="mylog.log",filemode="w",format="%(asctime)s %(filename)s %(lineno)s: %(message)s"
)num = input("请输入一个数字")try:int_num = int(num)
except:logging.info("非法的输入{}".format(num))
print('结束了')
写模式的代码,每一次日志的内容,都会被重写
效果
2019-07-01 14:01:29,433 test_log.py 15: 非法的输入b
获得日志对象
获取方式
logging.getLogger()
import logging# 获得日志对象
logger = logging.getLogger()
print(logger)
print(logger.__dict__)
日志对象的属性字典
{‘filters’: [], ‘name’: ‘root’, ‘level’: 30, ‘parent’: None, ‘propagate’: True, ‘handlers’: [], ‘disabled’: False, ‘_cache’: {}}
日志对象的特点
可以实现,同时,在屏幕上显示 内容,和文件中输出内容
它这样操作的机理,是需要两个对象支持的
对象一,是文件处理器,filehandler
对象二,屏幕处理器,streamhandler
日志对象的完整配置
import logging,os,timedef get_logger():"""获取日志对象,已经对日志对象进行了相关的设置了:return:"""# 生成日志对象logger = logging.getLogger()# 设置提示级别logger.setLevel("INFO")# 生成日志保存路径current_dir = os.path.dirname(os.path.abspath(__file__))logger_file_path = os.path.join(current_dir, time.strftime("%Y%m%d")+".log")# 设置输出对象file_handler = logging.FileHandler(logger_file_path, encoding="utf8")stream_handler = logging.StreamHandler()# 设置日志输出的格式fmt = logging.Formatter("%(asctime)s %(filename)s %(lineno)s : %(message)s")# 设置输出对象按照格式来输出file_handler.setFormatter(fmt)# 日志对象添加输出对象if not logger.handlers:logger.addHandler(file_handler)logger.addHandler(stream_handler)return loggerif __name__ == '__main__':l = get_logger()l.info('haha')
图示日志模块
更正,图片器对象有setformatter方法
处理器对象包括了文件处理器对象,流处理器对象
日志对象的使用
当日志对象配置好了以后,如果使用,格式为
日志对象.运行级别(str日志内容)例子:
logger.info("启动运行功能")
------------以下是备课笔记----------------------
日志模块帮助我们记录信息
非常重要的模块
示例
日志级别,五个
设置运行级别
默认信息显示在控制台的
设置后内容输出到文件了
默认是追加模式
将追加模式设置为写模式,默认是追加模式
显示时间与行号
加文件名,加日志内容
其它参数
…
日志对象
日志对象
屏幕与文件对象,不完整版
大鱼吃小鱼,小鱼吃虾米的方式
生态链
打印日志
屏幕与文件同时显示
默认warning模式
修改日志对象的默认级别
开发实用
把日志的设置处理一下
让函数返回一个logger对象
用时直接调对象的方法
回顾
添加日志
日志的子对象
getLogger参数写名称
根,子,孙子,层级
根对象,输出
子对象也在输出时
子对象会输出多次
原因是,子对象输出时看看上级,上也在输出,自己会再次输出
解决重复输出的办法, 让上级对象停止输出就可
设置日志文件的编码为 utf8编码
python-日志模块-logging相关推荐
- Python日志模块logging高级用法
推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...
- python logging模块的作用_【python】【logging】python日志模块logging常用功能
logging模块:应用程序的灵活事件日志系统,可以打印并自定义日志内容 logging.getLogger 创建一个log对象 >>> log1=logging.getLogger ...
- python日志模块----logging
使用Python的logging模块能很好的帮我们完成程序的日志功能,其实它跟Java中的log4j有不少相似的地方.下面记录下今天学习到的logging的知识(因为有一些还没真正使用过,不知道是否说 ...
- Python日志模块logging,这一篇就够了
橙好科技logging模块教程 文章目录 1-logging介绍 2-日志作用 3-日志配置basicConfig 3-日志级别level 4-日志格式format 4-输出日志到控制台 5-输出 ...
- python 日志模块 logging
如何使用python自带的 logging 模块实现日志功能 1.初始化一个logger对象 1)引入模块 import os import logging import sys 2)初始化变量,声明 ...
- Python:日志模块logging的应用
2019独角兽企业重金招聘Python工程师标准>>> 在Python中,上面以实现的和已经实现的,均可以使用logging模块迅速搞定,且仅仅只需要一个配置文件,两行代码,实现过程 ...
- python logging模块的作用_Python 日志模块logging分析及使用-2
本文作为Python日志模块的补充,主要介绍日志回滚RotatingFileHandler和TimedRotatingFileHandler的使用,以及其所带来的问题.Logger对象的日志等级是如何 ...
- Python之配置日志模块logging
一.定义日志打印方式 如果我们运行自己的程序,有时候需要记录程序运行过程中出现的问题或者信息.可以运用日志模块logging来记录,该模块日志格式可以根据用户需求来自己定义. 常见打印日志信息形式如下 ...
- Python的日志模块logging的使用
Python的日志模块logging的使用 1 logging模块介绍 2 logging 简单示例 3 logging.basicConfig() 4 logging组件 4.1 Logger类 4 ...
- 【Python】—日志模块logging使用详解1
文章目录 1.日志级别 2.logging流程 3.几个重要的类 3.1 Logger类 1) 最常用的配置方法 2) 创建`Logger`对象`logging.getLogger([name])` ...
最新文章
- Nature | 李海等揭示肠道菌群参与塑造B淋巴细胞抗原受体组库
- 学习Docker容器网络模型 - 搭建分布式Zookeeper集群
- 输入字符和数字 java,验证输入仅为字符串,数字仅为JAVA
- 原生js实现canvas气泡冒泡效果
- 创建订单 - 扣除商品库存与订单状态保存
- mysql int 优化_MySQL数据类型优化—整数类型优化选择
- nginx php-fpm 输出php错误日志(转)
- gradle ant_使用Gradle引导旧式Ant构建
- 极简的 PNG 编码函数 svpng(),用来学习C语言,真的很爽
- jquery中prop()和attr()的使用
- php pdo mysql 预处理_php -- PDO预处理
- BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】
- 获取TextView每行的内容 (涉及getLineCount为0,getLineEnd问题)
- Java练习题--员工类案例练习
- 2012春晚节目清单:
- 福大软工1816 · 第五次作业 - 结对作业2
- 20 虚幻4【UE4】场景中模型高亮轮廓
- 郑州大学计算机系好请假吗,郑州大学网上信息
- 计算机windows7教程,win7系统教程
- 领导驾驶舱如何助力领导做决策?
热门文章
- css hack惯用手法
- iApp对接hybbs社区APP源码
- ubuntu 串口调试工具推荐_谈一谈单片机开发的几种调试方案
- ZPan私人网盘 v1.4.1
- 1b8c语言,C语言 - 王朝网络 - wangchao.net.cn
- 医生c语言测试卷b卷的答案,合肥工业大学C语言期中测试题_B卷
- ] 求鉴定:《终于知道ramdisk 4g是如何使用4G以上内存了,慎用!》
- 工商银行黄金开户问答题答案
- Windows下GIt入门试验配置教程单机版
- 构建ASP.NET网站十大必备工具