iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python基础之logging模块知识总结
  • 907
分享到

Python基础之logging模块知识总结

Pythonlogging模块python常用模块 2022-06-02 22:06:35 907人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录前言一、日志级别二、basicConfig三、日志写文件四、traceback记录前言 logging模块是python内置的标准模块,主要用于输出脚本运行日志,可以设置输出日志的等级、日志保存路径等。

目录
  • 前言
  • 一、日志级别
  • 二、basicConfig
  • 三、日志写文件
  • 四、traceback记录

前言

logging模块是python内置的标准模块,主要用于输出脚本运行日志,可以设置输出日志的等级、日志保存路径等。

  • 可以通过设置不同的日志等级,在 release 版本中只输出重要信息,而不显示大量的调试信息
  • logging 可以决定将信息输出位置和内容
  • logging 线程安全

一、日志级别

级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG

  • debug : 打印全部日志,详细信息,通常只出现在诊断问题
  • info : 打印info,warning,error,critical级别的日志,正常输出
  • warning : 打印warning,error,critical级别的日志,部分异常,不影响程序
  • error : 打印error,critical级别的日志,影响程序部分功能
  • critical : 打印critical级别,影响程序运行

import logging  # 引入logging模块
# 将信息打印到控制台上
logging.debug("debug")
logging.info("info")
logging.warning("warning")
logging.error("error")
logging.critical("critical")

[root@zijie ~]# Python log.py
WARNING:root:warning
ERROR:root:error
CRITICAL:root:critical

默认生成的root logger的level是logging.WARNING,低于该级别不输出,如果要展示低于WARNING级别的内容,可以引入logging.basicConfig指定日志级别logging.basicConfig(level=logging.DEBUG)

二、basicConfig

格式 描述
filename 指定使用指定的文件名而不是 StreamHandler 创建 FileHandler。
filemode 如果指定 filename,则以此模式打开文件(‘r'、‘w'、‘a')。默认为“a”。
fORMat 为处理程序使用指定的格式字符串
datefmt 使用 time.strftime() 所接受的指定日期/时间格式。
style 如果指定了格式,则对格式字符串使用此样式。'%' 用于 printf 样式、'{' 用于 str.format()、'$' 用于 string。默认为“%”。
level 将根记录器级别设置为指定的级别。默认生成的 root logger 的 level 是 logging.WARNING,低于该级别的就不输出了。级别排序:CRITICAL > ERROR > WARNING > INFO > DEBUG。(如果需要显示所有级别的内容,可将 level=logging.NOTSET)
stream 使用指定的流初始化 StreamHandler。注意,此参数与 filename 不兼容——如果两者都存在,则会抛出 ValueError。
handlers 如果指定,这应该是已经创建的处理程序的迭代,以便添加到根日志程序中。任何没有格式化程序集的处理程序都将被分配给在此函数中创建的默认格式化程序。注意,此参数与 filename 或 stream 不兼容——如果两者都存在,则会抛出 ValueError。

import logging

logging.basicConfig(level=logging.INFO,
                    format='%(asctime)s %(filename)s %(levelname)s %(message)s',
                    datefmt='%a %d %b %Y %H:%M:%S',
                    filename='xuehui.log',
                    filemode='w')

logging.info('This is a info.')
logging.debug('This is a debug message.')
logging.warning('This is a warning.')

三、日志写文件


import logging
import os.path
import time

#创建logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建handler,用于写入日志文件
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
# 定义输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# 将logger添加到handler
logger.addHandler(fh)
# 日志
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')

四、traceback记录


import logging
import os.path
import time

#创建logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建handler,用于写入日志文件
logdate = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
log_path = 'logs/'
log_name = log_path + logdate + '.log'
logfile = log_name
fh = logging.FileHandler(logfile, mode='w')
fh.setLevel(logging.DEBUG)
# 定义输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
# 将logger添加到handler
logger.addHandler(fh)
# 日志
try:
    open('/data/exist', 'rb')
except BaseException as e:
    logger.error('Failed to open file', exc_info=True)

到此这篇关于Python基础之logging模块知识总结的文章就介绍到这了,更多相关Python logging模块内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python基础之logging模块知识总结

本文链接: https://www.lsjlt.com/news/10677.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python基础之logging模块知识总结
    目录前言一、日志级别二、basicConfig三、日志写文件四、traceback记录前言 logging模块是Python内置的标准模块,主要用于输出脚本运行日志,可以设置输出日志的等级、日志保存路径等。 ...
    99+
    2022-06-02
    Python logging模块 python常用模块
  • Python基础之模块相关知识总结
    目录一、什么是模块二、导入模块三、name=‘main'四、搜索路径一、什么是模块 容器 -> 数据的封装 函数 -> 语句的封装 类 ->...
    99+
    2022-11-12
  • python基础知识总结
    ...
    99+
    2023-01-31
    基础知识 python
  • Python基础之hashlib模块subprocess模块logging模块
    目录一、hashlib模块基本操作与用法二、subprocess模块简介基本操作与用法三、logging模块简介基本操作与用法一、hashlib模块 什么是哈希模块: hashlib...
    99+
    2022-11-11
  • Python基础之元编程知识总结
    目录一、前言二、ImportTime vs RunTime三、元类四、装饰器五、对数据的抽象–描述符六、控制子类的创建——代替元类的方法一、前言 首先说,Python中一切皆对象,老...
    99+
    2022-11-12
  • java基础之String知识总结
    目录一、概念二、特点三、三种构造方式:四、字符串常量池一、概念 String代表字符串,java语言中所有双引号的字符串都是String的对象,不管是否是new出来的对象。 二、特点...
    99+
    2022-11-12
  • Python基础知识点总结
       学了一年多的Python,去年做了一段时间的爬虫项目,近来在做数据分析和机器学习的东西,抽空整理一下以前学的Python基础知识点,有借鉴与总结。具体知识点后续会分段展开深入。     1.到底什么是Python?你可以在回答中与...
    99+
    2023-01-31
    知识点 基础 Python
  • Python基础知识之函数,类,模块
    目录1、Function 函数1)定义函数2)参数设置3)全局和局部变量2、Class类1)定义class2)class的功能3)继承4)私有属性和功能5)特殊方法3、Module模...
    99+
    2022-11-12
  • python基础之文件处理知识总结
    目录一、open()方法二、read()方法三、readlines()方法四、seek()方法五、tell()函数  一、open()方法 python open...
    99+
    2022-11-12
  • Python基础之函数嵌套知识总结
    内部/内嵌函数 1、定义:在一个函数的函数体内使用关键字def关键字定义一个新的函数,这个新的函数就叫做内部/内嵌函数。 2、注意点:内部函数的整个函数体都在外部函数的作用域内,如...
    99+
    2022-11-12
  • Spring5学习之基础知识总结
    目录1.概述2.入门Demo3.源码1.概述 1、Spring 是轻量级的开源的 JavaEE 框架 2、 Spring 可以解决企业应用开发的复杂性 3、Spring 有两个核心部...
    99+
    2022-11-12
  • Java基础知识总结之继承
    目录一、继承的基本概念二、继承的好处和弊端三、继承中变量访问的特点四、super关键字五、继承中构造方法的访问特点六、继承中成员方法的访问特点七、方法重写八、包九、修饰符十、stat...
    99+
    2022-11-12
  • Python入门基础知识总结
    目录 一:简介: 二:Python基础语法 2.1.字面量 2.2.注释 2.3.数据类型转换 2.4.标识符 2.5.运算符 2.6.字符串 2.6.1.字符串的三种定义方式 2.6.2.字符串拼接 2.6.3.字符串格式化 2.6.4....
    99+
    2023-09-01
    python 开发语言
  • Python基础之元组与文件知识总结
    目录大纲Python文件类型及汇总一、元组二、文件三、pickle存储和读取python对象四、类型汇总大纲 Python文件类型及汇总 一、元组 1 特征 1.任意对象的有序集...
    99+
    2022-11-12
  • Python基础之变量的相关知识总结
    变量全都是引用 跟其他编程语言不同,Python的变量不是盒子,不会存储数据,它们只是引用,就像标签一样,贴在对象上面。 比如: >>> a = [1, 2, ...
    99+
    2022-11-12
  • 总结CSS基础知识
    本篇内容主要讲解“总结CSS基础知识”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“总结CSS基础知识”吧!一、CSS简介css:层叠样式表 英文全名:casca...
    99+
    2022-10-19
  • canvas基础知识总结
    本篇内容主要讲解“canvas基础知识总结”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“canvas基础知识总结”吧!1、填充矩形 fillRect(x,y,w...
    99+
    2022-10-19
  • nodejs基础知识总结
    这篇文章主要讲解了“nodejs基础知识总结”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“nodejs基础知识总结”吧!什么是nodejsnode.js是基...
    99+
    2022-10-19
  • react基础知识总结
    目录前言 开始 React 生命周期 React Fiber React setState React 事件机制 前言 最近在准备面试。复习了一些react的知识点,特此总结。 开...
    99+
    2022-11-12
  • HTML基础知识总结
    目录标签分类常用标签表单框架 常用的布局组合标签HTML4和HTML5的区别:HTML5 中新增的语义标签 - 了解HTML5 新的表单属性 form 新属性input 新...
    99+
    2022-11-12
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作