logging 是对程序运行中的日志进行输出记录,用户在程序中设置在哪个地方输出什么信息,方便进行之后问题的排查。

logging输出有两种方式:输出至控制台 、 输出至文件

输出至控制台:

import logging
logging.warning('Watch out!')
logging.info('I told you so')

运行上述代码,我们会在控制台看到如下输出:

WARNING:root:Watch out!

info消息并没有出现,这是因为logging默认的输出等级是warn 。

如果想要更改logging的输出等级:在使用logging输出日志前加上语句: logging.basicConfig(level=logging.INFO)

输出至文件:

import logging

logging.basicConfig(filename="mylog.log")

logging.info("I told you so")
logging.warning("Watch out!")

通过在logging.basicConfig 中设置filename,就可以将日志信息输出至指定文件中保存了。同样,默认等级还是Warn。

多次运行上述代码,会发现每次输出的日志信息都会追加在文件后面。

如果想要每次都清空之前的日志信息:使用 filemode 参数,设置 filemode = "w" 。 如果不设置,filemode 默认为 "a"

logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO)

 另外,对于basicConfig() 的调用应该在 info()、warning() 的前面: 因为他被设定为一次性的配置,只有第一次调用会产生操作,随后调用不会再生效(如果没有在一开始指定,那么就会走默认的配置)

自定义日志展示格式:

如果想在每条日志上展示更多的信息,如显示等级、时间日期、模块、行数等,使用basicConfig 中的 format参数来实现

import logging

logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s')

logging.info("I told you so")
logging.warning("Watch out!") # 文件日志展示
2021-10-29 15:50:13,378 root INFO file_logging:10 I told you so
2021-10-29 15:50:13,380 root WARNING file_logging:11 Watch out!

日期/时间展示的默认格式如上,如果想要更多的控制日期/时间展示格式,使用datefmt参数

import logging

logging.basicConfig(filename="mylog.log", filemode="w", level=logging.INFO, format='%(asctime)s %(name)s %(levelname)s %(module)s:%(lineno)d %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p')

logging.info("I told you so")
logging.warning("Watch out!") # 文件日志展示
10/29/2021 03:53:03 PM root INFO file_logging:10 I told you so
10/29/2021 03:53:03 PM root WARNING file_logging:11 Watch out!

python logging模块学习的更多相关文章

  1. Python logging 模块学习

    logging example Level When it's used Numeric value DEBUG Detailed information, typically of interest ...

  2. python logging模块学习(转)

    前言 日志是非常重要的,最近有接触到这个,所以系统的看一下Python这个模块的用法.本文即为Logging模块的用法简介,主要参考文章为Python官方文档,链接见参考列表. 另外,Python的H ...

  3. python logging模块使用流程

    #!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') logging ...

  4. (转)python logging模块

    python logging模块 原文:http://www.cnblogs.com/dahu-daqing/p/7040764.html 1 logging模块简介 logging模块是Python ...

  5. python logging模块使用教程

    简单使用 #!/usr/local/bin/python # -*- coding:utf-8 -*- import logging logging.debug('debug message') lo ...

  6. python logging模块【转载】

    转自:https://www.cnblogs.com/dahu-daqing/p/7040764.html 参考:老顽童log模块,讲的很细致,基本上拿到手就可以直接用了,很赞 1 logging模块 ...

  7. python logging模块可能会令人困惑的地方

    python logging模块主要是python提供的通用日志系统,使用的方法其实挺简单的,这块就不多介绍.下面主要会讲到在使用python logging模块的时候,涉及到多个python文件的调 ...

  8. python logging模块使用

    近来再弄一个小项目,已经到收尾阶段了.希望加入写log机制来增加程序出错后的判断分析.尝试使用了python logging模块. #-*- coding:utf-8 -*- import loggi ...

  9. 读懂掌握 Python logging 模块源码 (附带一些 example)

    搜了一下自己的 Blog 一直缺乏一篇 Python logging 模块的深度使用的文章.其实这个模块非常常用,也有非常多的滥用.所以看看源码来详细记录一篇属于 logging 模块的文章. 整个 ...

  10. python - argparse 模块学习

    python - argparse 模块学习 设置一个解析器 使用argparse的第一步就是创建一个解析器对象,并告诉它将会有些什么参数.那么当你的程序运行时,该解析器就可以用于处理命令行参数. 解 ...

随机推荐

  1. SystemVerilog Tutorial

    来自网站 1.网站说明-tutorial This SystemVerilog tutorial is written to help engineers with background in Ver ...

  2. 搜索(todo)

    目录 BFS 3. 最短单词路径 DFS 1. 最大连通面积 2. 矩阵中的连通分量 Backtracking 在矩阵中寻找字符串 5. 全排列 6. 含有相同元素全排列 7. 组合 8.组合求和 9 ...

  3. centos7无法下载nginx

    centos7无法下载nginx   1.正常情况下:先下载epel-release 源然后安装yum install -y nginx2.如果不行,试着执行yum clean all &&a ...

  4. Day 24 24.1:逆向分析1 - Steam案例

    STEAM逆向分析 url:https://store.steampowered.com/login/?redir=&redir_ssl=1 分析思路: 输入用户名和密码后,点击登录按钮,通过 ...

  5. 右键无法新建word文件怎么办?

      电脑用久了,总会出现奇奇怪怪的问题.   我最近遇到一个问题:鼠标右键无法新建word文件.如何解决此问题呢?   刚开始,我忍了.解决方法为:把word图标固定到任务栏,就好了呗,需要用的时候, ...

  6. 有关谷歌下载PDF文件而不是直接打开预览的问题

    找了很多帖子,都不行, 解决方法把链接处理成blob文件再调用下载. 但是仍然不行,最终原因找到: 缺少了这一部创建,需要把二进制数据重新用 Blob对象申明下 let data = new Blob ...

  7. centos 换源

    原文: https://blog.csdn.net/MateSnake/article/details/124088310 备份原来的源:sudo mv /etc/yum.repos.d/CentOS ...

  8. C++ Gui Qt4 第二章

    这一章需要使用在控制台使用qmake 使用qmake的时候要先配置qmake的环境变量 找到qmake所在的目录,添加环境变量即可 在使用的时候要先跳转到源文件所在的目录 课本中说qmake可以自动检 ...

  9. Dockerfile启动镜像报错 invalid reference format: repository name must be lowercase

    具体报错信息如下: "user-0.0.1-SNAPSHOT.jar:latest" for "-t, --tag" flag: invalid referen ...

  10. SDN第二次实验

    一.实验目的能够对Open vSwitch进行基本操作:能够通过命令行终端使用OVS命令操作Open vSwitch交换机,管理流表:能够通过Mininet的Python代码运行OVS命令,控制网络拓 ...