简单输出日志

import logging  #导入输出日志的模块#我们直接输出查看结果
logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')#输出结果:
#ERROR:root:error message
#WARNING:root:warning message
#CRITICAL:root:critical message
#从结果可以看出,日志输出默认优先级是Warning

输出日志的这几个方法的优先级 (CRITICAL>ERROR>WARNING>INFO>DEBUG)

  • 那么,这并不能满足我们的需求,接下来我们就介绍灵活配置日志输出(这种日志输出配置只能是单向输出,要么输出到文件,要么输出到屏幕)

灵活配置日志

import logging
logging.basicConfig(level=logging.DEBUG,   #设置日志优先级为最低,也就是DEBUGformat='%(asctime)s %(levelname)s : %(message)s',  #设置日志的输出格式datefmt='%Y-%m-%d %H:%M:%S',       #配置日期的输出格式filename='test.log',            #我们将输出的日志写入到test.log文件中,若是我们只想输出到屏幕上,注释本段代码即可filemode='a'                    #设置写入文件的模式为'a'(a也是默认写入模式)
)logging.debug('debug message')
logging.info('info message')
logging.warning('warning message')
logging.error('error message')
logging.critical('critical message')

输出内容:
2018-01-01 19:16:52 DEBUG : debug message
2018-01-01 19:16:52 INFO : info message
2018-01-01 19:16:52 WARNING : warning message
2018-01-01 19:16:52 ERROR : error message
2018-01-01 19:16:52 CRITICAL : critical message

知识点:

可见在logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有
filename:用指定的文件名创建FiledHandler(后边会具体讲解handler的概念),这样日志会被存储在指定的文件中。
filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”。
format:指定handler使用的日志显示格式。 datefmt:指定日期时间格式。
level:设置rootlogger(后边会讲解具体概念)的日志级别
stream:用指定的stream创建StreamHandler。可以指定输出到sys.stderr,sys.stdout或者文件,默认为sys.stderr。若同时列出了filename和stream两个参数,则stream参数会被忽略。

format参数中可能用到的格式化串: %(name)s Logger的名字 %(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别 %(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名 %(module)s 调用日志输出函数的模块名 %(funcName)s
调用日志输出函数的函数名 %(lineno)d 调用日志输出函数的语句所在的代码行 %(created)f
当前时间,用UNIX标准的表示时间的浮 点数表示 %(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有 %(threadName)s 线程名。可能没有 %(process)d 进程ID。可能没有
%(message)s用户输出的消息

  • 若是我们既需要将日志内容写入文件,又想打印至屏幕,我们如何做?

灵活配置进阶

import logginglogger=logging.getLogger()      #我们通过logging.getLogger()接受一个logger变量log_f=logging.FileHandler('test1.log')       #创建一个可以写入到文件的log_flog_s=logging.StreamHandler()                 #创建一个可以输出到屏幕上的log_s#创建出日志输出的格式,用formatter接收
formatter=logging.Formatter('%(asctime)s %(levelname)s : %(message)s',datefmt='%Y-%m-%d %H:%M:%S')log_f.setFormatter(formatter)   #我们写入日志时需要formatter这种格式
log_s.setFormatter(formatter)   #打印到屏幕上同样需要这种输出格式logger.addHandler(log_f)       #将这两种输出方式全部添加给logger
logger.addHandler(log_s)logger.setLevel(logging.DEBUG)  #配置优先级为DEBUGlogger.debug('********debug')
logger.info('********info')
logger.warning('********warning')
logger.error('********error')
logger.critical('********critical')
此时就实现了屏幕和文本都可以输出日志,结果如下:
2018-01-01 19:37:37 DEBUG : ********debug
2018-01-01 19:37:37 INFO : ********info
2018-01-01 19:37:37 WARNING : ********warning
2018-01-01 19:37:37 ERROR : ********error
2018-01-01 19:37:37 CRITICAL : ********critical

python成长日迹--日志模块logging相关推荐

  1. Python项目中 封装日志模块logging 及快速调用方法

    前言 在 Python 中,可以直接用自带的 logging 模块来记录日志,但是在使用时我们需要配置一些 Handler.Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个 ...

  2. python成长日迹--闭包

    python中的闭包从表现形式上定义(解释)为:如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure). 首先我们来理解第一个条件:在一 ...

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

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

  4. Python之配置日志模块logging

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

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

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

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

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

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

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

  8. 日志模块-logging模块

    日志模块 -logging(非常重要) 记录用户行为 程序运行过程 程序错误记录 logging.debug()通常调试时用到的日志信息 logging.info() #证明事情按照预期的那样工作 l ...

  9. python log模块_Python日志模块-logging

    一.logging模块 日志的作用可以简单总结为以下3点: 1.程序调试 2.了解软件程序运行情况,是否正常 3.软件程序运行故障分析与问题定位 1.日志的等级 不同的应用程序所定义的日志等级可能会有 ...

最新文章

  1. Constant expression required
  2. IIS托管管道模式的集成和经典
  3. python读取txt文件并写入excel-Python实现读取txt文件并转换为excel的方法示例
  4. java多线程中的异常处理
  5. 转pdf wps_华为手机自带图片转PDF的功能?今天才知道,当了5年花粉白当了
  6. Django静态文件处理、中间件及Admin站点
  7. idea 下查看项目代码量、行数
  8. sqlite3命令行基本操作
  9. 读计算机网络得学五笔吗,电脑五笔打字难不难学?大约要学多久才可以掌握?
  10. 深度学习GPU最全对比,到底谁才是性价比之王?
  11. 在deepin系统下安装git
  12. 在腾讯的八年,我的职业思考!
  13. 利用PYTHON连接阿里云物联网平台
  14. 华硕启动vmware 虚拟机,显示Intel VT-x但Intel VT-x处于禁用状态 ,开始vt
  15. idea 推送代码报‘error: The following untracked working tree ……’
  16. 2021-2022下沉市场研究报告合集(共46份)
  17. app inventor学习平台和AI伴侣
  18. AV-TEST给出Android平台最佳防毒软件排名
  19. CAFFE windows 配置 测试
  20. sklearn OneHot编码

热门文章

  1. Java权限降级_简单值控制权限系统的改进
  2. IDEA创建一个JavaWeb项目以及OUT目录
  3. 第三十五讲项目五 在北京买房
  4. 委内瑞拉大规模停电关注工控和物联网安全
  5. 超详细解读带你读懂单细胞RNA测序分析的最佳实践教程 (原理、代码和评述)
  6. 普华永道、IBM、麦肯锡、埃森哲 (转)
  7. 如何培养记账习惯,记账所需的步骤
  8. 安装Python下载的是asc格式?
  9. 如何分析竞争对手的网站
  10. cdn 引入的资源需要通过 externals 排除打包哦~