前言

    努力从今天开始,成功从“零”开始。

一、logging模块是什么?

是Python内置的标准模块,主要用于输出运行日志

二、日志是什么?

  • 日志是代码的必要组成部分
  • 记录日志能显示程序当前运行状态
  • 出问题后定位当时问题
  • 对日志记录的数据挖掘进行统计和分析(比如 **地区登录APP人数较多等)

三、python日志级别

DEBUG:调试信息

INFO:有用的信息

WARNING:警告信息 (默认日志级别)

ERROR:错误信息

CRITICAL:严重错误信息

NOTSET:非级别,表示不设置,按照父logger级别来过滤日志

日志级别关系:

NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL

备注:如果把log的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出。也就是说,日志级别越高,打印的日志越不详细。

四、logging模块实战

  • 4.1 logging模块基础代码
import logging

logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

由于没有设置日志级别,默认WARNING级别,上述代码输出如下:

WARNING:root:-----警告信息[warning]-----
ERROR:root:-----错误信息[error]-----
CRITICAL:root:-----严重错误信息[critical]----- Process finished with exit code 0
  • 4.2 自定义日志级别
import logging

logging.basicConfig(level=logging.DEBUG)    #设置日志级别为DEBUG,注意要大写
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')
  • 4.3 自定义日志显示格式
import logging

logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

其中format是控制日志格式用的,具体格式包含:(ps:读者可以换到上面代码部分试试)

%(levelno)s: 打印日志级别的数值

%(levelname)s: 打印日志级别名称

%(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0]

%(filename)s: 打印当前执行程序名

%(funcName)s: 打印日志的当前函数

%(lineno)d: 打印日志的当前行号

%(asctime)s: 打印日志的时间

%(thread)d: 打印线程ID

%(threadName)s: 打印线程名称

%(process)d: 打印进程ID

%(message)s: 打印日志信息

  • 4.4 自定义日志输出到文件
import logging

logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s',
filename='test.log')
logging.debug('-----调试信息[debug]-----')
logging.info('-----有用的信息[info]-----')
logging.warning('-----警告信息[warning]-----')
logging.error('-----错误信息[error]-----')
logging.critical('-----严重错误信息[critical]-----')

其中上述代码中 filename 参数为日志文件配置

小结

  • 如果没有接触过日志的朋友使用本篇入门非常不错
  • 本篇中使用了 basicConfig() 这种方式去配置日志,其实还有多种方式配置(如配置文件配置、自定义logger对象配置等)

python常识系列08-->logging模块基础入门的更多相关文章

  1. Python学习系列(一)(基础入门)

    Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频 ...

  2. Python学习系列之logging模块

    实例一:日志写进一个文件 代码: import logging logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(filen ...

  3. Python学习系列(二)(基础知识)

    Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...

  4. Python进阶(十一)----包,logging模块

    Python进阶(十一)----包,logging模块 一丶包的使用 什么是包: ​ 包是通过使用 .模块名的方式组织python模块名称空间的方式. 通俗来说,含有一个__init__.py文件的文 ...

  5. Python之日志处理 logging模块

    Python之日志处理(logging模块)   本节内容 日志相关概念 logging模块简介 使用logging提供的模块级别的函数记录日志 logging模块日志流处理流程 使用logging四 ...

  6. 小白的Python之路 day5 logging模块

    logging模块的特点及用法 一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你 ...

  7. python全栈开发-logging模块(日记专用)

    一.概述 很多程序都有记录日志的需求,并且日志中包含的信息即有正常的程序访问日志,还可能有错误.警告等信息输出,python的logging模块提供了标准的日志接口,你可以通过它存储各种格式的日志,l ...

  8. Python的日志记录-logging模块的使用

    一.日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法,软件开发者在代码中调用日志函数,表明发生了特定的事件,事件由描述性消息描述,同时还包含事件的重要性,重要性也称为级别或严重性. ...

  9. python笔记-8(logging模块、re模块、栈与队列)

    一.Logging模块日志 1.logging导入 Import logging 2.知道5个日志级别的等级关系 Debug->info->warning->error->cr ...

随机推荐

  1. Redis 的 maxmemory 和 dbnum 默认值都是多少?对于最大值会有限制吗?

    一.Redis 的默认配置 了解 Redis 的都知道,Redis 服务器状态有很多可配置的默认值. 例如:数据库数量,最大可用内存,AOF 持久化相关配置和 RDB 持久化相关配置等等.我相信,关于 ...

  2. mac使用brew安装mysql5.7

    安装mysql5.7 brew install mysql@5.7 设置环境变量(可能安装完自动生成过了,可以cat ~/.zshrc看一下,有了就不用添加了 ) echo 'export PATH= ...

  3. Docker安装yapi

    安装docker 1.安装依赖包: yum install -y yum-utils device-mapper-persistent-data lvm2 2.安装 Yum -y install do ...

  4. js 函数的防抖(debounce)与节流(throttle) 带 插件完整解析版 [helpers.js]

    前言:         本人纯小白一个,有很多地方理解的没有各位大牛那么透彻,如有错误,请各位大牛指出斧正!小弟感激不尽.         函数防抖与节流是做什么的?下面进行通俗的讲解. 本文借鉴:h ...

  5. SSH公钥登录和RSA非对称加密

    SSH登录方式 接触过Linux服务器的同学肯定用过SSH协议登录系统,通常SSH协议都有两种登录方式:密码口令登录和公钥登陆. 一.密码口令(类似于账号密码登录) 1.客户端连接服务器,服务器把公钥 ...

  6. 在线教育项目-day05【课程分类管理-添加课程分类】

    1.引入依赖 之前测试EasyExcel已经引入过了 2.利用代码生成器生成结构 我们做的只需要更改代码生成器的数据库表即可 3.运行代码生成器 4.书写代码 1.controller @RestCo ...

  7. 【DNS域名解析命令】host

    host - DNS lookup utility host命令是常用的分析域名查询工具,可以用来测试域名系统工作是否正常. 语法: host [-aCdlnrsTwv] [-c class] [-N ...

  8. Onedrive File Open Problem

    在用Onenote 2016写笔记时,同步到Onedrive后就变成了Internet快捷方式,而且直接打开时会出现提示: 原因 用Onenote客户端在Onedrive上创建的笔记本是一种特殊文件, ...

  9. Vector shrink 请求容器降低其容量和size匹配 shrink_to_fit();

    一.先从size 和capacity 说起 resize(),设置大小(size); reserve(),设置容量(capacity); size()是分配容器的内存大小,而capacity()只是设 ...

  10. P1518 两只塔姆沃斯牛 The Tamworth Two(简单的搜索题)

    题目描述 两只牛逃跑到了森林里.农夫John开始用他的专家技术追捕这两头牛.你的任务是模拟他们的行为(牛和John). 追击在10x10的平面网格内进行.一个格子可以是: 一个障碍物, 两头牛(它们总 ...