日志模块

导入

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相关推荐

  1. Python日志模块logging高级用法

    推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...

  2. python logging模块的作用_【python】【logging】python日志模块logging常用功能

    logging模块:应用程序的灵活事件日志系统,可以打印并自定义日志内容 logging.getLogger 创建一个log对象 >>> log1=logging.getLogger ...

  3. python日志模块----logging

    使用Python的logging模块能很好的帮我们完成程序的日志功能,其实它跟Java中的log4j有不少相似的地方.下面记录下今天学习到的logging的知识(因为有一些还没真正使用过,不知道是否说 ...

  4. Python日志模块logging,这一篇就够了

    ​ 橙好科技logging模块教程 文章目录 1-logging介绍 2-日志作用 3-日志配置basicConfig 3-日志级别level 4-日志格式format 4-输出日志到控制台 5-输出 ...

  5. python 日志模块 logging

    如何使用python自带的 logging 模块实现日志功能 1.初始化一个logger对象 1)引入模块 import os import logging import sys 2)初始化变量,声明 ...

  6. Python:日志模块logging的应用

    2019独角兽企业重金招聘Python工程师标准>>> 在Python中,上面以实现的和已经实现的,均可以使用logging模块迅速搞定,且仅仅只需要一个配置文件,两行代码,实现过程 ...

  7. python logging模块的作用_Python 日志模块logging分析及使用-2

    本文作为Python日志模块的补充,主要介绍日志回滚RotatingFileHandler和TimedRotatingFileHandler的使用,以及其所带来的问题.Logger对象的日志等级是如何 ...

  8. Python之配置日志模块logging

    一.定义日志打印方式 如果我们运行自己的程序,有时候需要记录程序运行过程中出现的问题或者信息.可以运用日志模块logging来记录,该模块日志格式可以根据用户需求来自己定义. 常见打印日志信息形式如下 ...

  9. Python的日志模块logging的使用

    Python的日志模块logging的使用 1 logging模块介绍 2 logging 简单示例 3 logging.basicConfig() 4 logging组件 4.1 Logger类 4 ...

  10. 【Python】—日志模块logging使用详解1

    文章目录 1.日志级别 2.logging流程 3.几个重要的类 3.1 Logger类 1) 最常用的配置方法 2) 创建`Logger`对象`logging.getLogger([name])` ...

最新文章

  1. Nature | 李海等揭示肠道菌群参与塑造B淋巴细胞抗原受体组库
  2. 学习Docker容器网络模型 - 搭建分布式Zookeeper集群
  3. 输入字符和数字 java,验证输入仅为字符串,数字仅为JAVA
  4. 原生js实现canvas气泡冒泡效果
  5. 创建订单 - 扣除商品库存与订单状态保存
  6. mysql int 优化_MySQL数据类型优化—整数类型优化选择
  7. nginx php-fpm 输出php错误日志(转)
  8. gradle ant_使用Gradle引导旧式Ant构建
  9. 极简的 PNG 编码函数 svpng(),用来学习C语言,真的很爽
  10. jquery中prop()和attr()的使用
  11. php pdo mysql 预处理_php -- PDO预处理
  12. BZOJ 1619 [Usaco2008 Nov]Guarding the Farm 保卫牧场:dfs【灌水】
  13. 获取TextView每行的内容 (涉及getLineCount为0,getLineEnd问题)
  14. Java练习题--员工类案例练习
  15. 2012春晚节目清单:
  16. 福大软工1816 · 第五次作业 - 结对作业2
  17. 20 虚幻4【UE4】场景中模型高亮轮廓
  18. 郑州大学计算机系好请假吗,郑州大学网上信息
  19. 计算机windows7教程,win7系统教程
  20. 领导驾驶舱如何助力领导做决策?

热门文章

  1. css hack惯用手法
  2. iApp对接hybbs社区APP源码
  3. ubuntu 串口调试工具推荐_谈一谈单片机开发的几种调试方案
  4. ZPan私人网盘 v1.4.1
  5. 1b8c语言,C语言 - 王朝网络 - wangchao.net.cn
  6. 医生c语言测试卷b卷的答案,合肥工业大学C语言期中测试题_B卷
  7. ] 求鉴定:《终于知道ramdisk 4g是如何使用4G以上内存了,慎用!》
  8. 工商银行黄金开户问答题答案
  9. Windows下GIt入门试验配置教程单机版
  10. 构建ASP.NET网站十大必备工具