logging,故名肆意就是正在进行日志,我艹,这个文化底蕴!

logging是python内置的日志模块,便于日常程序的日志写入和输出

logging共分为5个日志等级,分别是:

debug , info , warning , error , critical (已按等级顺序排列)

其中info是在今后经常应用的日志等级,对于logging来说,默认等级是warning,换句话说就是等于或高于warning等级,才会进行输出,默认warning等级,会输出warning,error,critical等级

代码示例:

 # 编辑者:闫龙
import logging
logging.debug("debug")
logging.info("info")#最为常用的输出等级
logging.warning("warning")
logging.error("error")
logging.critical("critical") #打印结果:
# WARNING:root:warning
# ERROR:root:error
# CRITICAL:root:critical

那么对于logging日志输出格式,和logging的等级配置要如何进行呢?

在logging中内置了两种方式进行操作,第一种是basicConfig,第二种是logger

那么这两种方式有什么区别呢?下面逐一解析:

第一种方式,baseConfig:

代码示例:

 # 编辑者:闫龙
import logging
logging.basicConfig(
level=logging.DEBUG,#更改日志的默认等级为DEBUG
format="%(asctime)s %(message)s",
#format中的格式可以在basicConfig的说明文档中查看
datefmt="%Y-%m-%d %H:%M:%S",
#时间格式,秒原本为%s但在字符串中%s是占位符,所以这里必须使用%S来解决冲突问题
filename="test.log",#日志文件
filemode="a"#文件操作方式为追加写入
) logging.debug("debug message")
logging.info("info")#最为常用的输出等级
logging.warning("warning")
logging.error("error")
logging.critical("critical") #test.log:
# 2017-04-30 18:41:23 debug message
# 2017-04-30 18:41:23 info
# 2017-04-30 18:41:23 warning
# 2017-04-30 18:41:23 error
# 2017-04-30 18:41:23 critical

其优势就是简单易操作,但缺点很多,比如无法屏幕和文件一起输出等,所以才有了第二种方式

第二种方式,logger:常用的日志配置方式

代码示例:

 # 编辑者:闫龙
import logging
logger = logging.getLogger() #实例化一个logger对象
fh = logging.FileHandler("logger2")#实例化一个文件流对象fh
sh = logging.StreamHandler()#实例化一个Stream流对象sh
fm = logging.Formatter("%(asctime)s - %(message)s")
#实例化一个日志格式对象,fm
fh.setFormatter(fm)
#将日志格式对象fm添加到fh对象中,让日志在进行文件输出时的格式是fm中定义的
logger.addHandler(fh)
#将文件流对象fh添加到logger对象中,让日志输出可以是文件流方式
logger.addHandler(sh)
#将文件流对象fh添加到logger对象中,让日志输出可以是Stream流方式
logger.debug("debug message")
logger.info("info")#最为常用的输出等级
logger.warning("warning")
logger.error("error")
logger.critical("critical") #logger2:
# 2017-04-30 18:53:22,324 - warning
# 2017-04-30 18:53:22,324 - error
# 2017-04-30 18:53:22,324 - critical
# 2017-04-30 18:57:53,341 - warning
# 2017-04-30 18:57:53,341 - error
# 2017-04-30 18:57:53,342 - critical
#打印结果:
# warning
# error
# critical
# warning
# error
# critical

按照Yuan先生的理论,Logger配置方式,就像是吸星大法,就是一个吸的过程,你有什么我吸什么,这种方式确实很好理解

Logger方式将来我们要经常用到,所以一定要记住哦

python模块-logging的智商上限的更多相关文章

  1. python模块 ---logging模块

    摘要by crazyhacking: 与log4cxx一样,分为三个部分,logger, handler,formatter. 详细内容参考:1官网http://docs.python.org/2/h ...

  2. Python模块——logging模块

    logging模块简介 logging模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统.logging模块是Python的一个标准库模块, 由标准库模块提供日志记录API的关键好处是 ...

  3. python模块--logging

    一.logging模块的简单应用 import logging logging.debug('debug message') logging.info('ingo message') logging. ...

  4. Python模块logging

    基本用法: import logging import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("A ...

  5. Python模块-logging模块(一)

    logging模块用来写日志文件 有5个级别,debug(),info(),warning(),error()和critical(),级别最高的为critical() debug()为调试模式,inf ...

  6. [Python 模块] logging模块、Logger类

    logging模块: 标准库里面的logging模块,在前面学习线程安全时曾用来解决print被打断的问题,这里会介绍logging模块的功能. logging模块是线程安全的,不需要客户做任何特殊的 ...

  7. Python模块-logging模块(二)

    logging模块记录日志有四个主要类:logger,handler,formatter,filter logger提供了应用程序可以直接使用的接口,每个程序在输出信息之前都要获得一个Logger h ...

  8. python 模块之-logging

    python  模块logging import logging ###  简单使用格式    日志级别等级CRITICAL > ERROR > WARNING > INFO > ...

  9. python的logging日志模块(二)

    晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕   import logging logging.debug('This is debug message') logging.info('Thi ...

随机推荐

  1. [转帖]Oracle字符集的查看与修改 --- 还未尝试 找个周六 试试.

    Oracle 字符集的查看和修改 感谢原作者 改天试试 https://www.cnblogs.com/rootq/articles/2049324.html 一.什么是Oracle字符集 Oracl ...

  2. Mysql innodb 间隙锁 (转)

    MySQL InnoDB支持三种行锁定方式: 行锁(Record Lock):锁直接加在索引记录上面. 间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记 ...

  3. [C/C++] C++ Primer学习笔记

    记录下自己掌握不清楚的概念和用法... Day 1 endl:具有输出换行的效果,并刷新与设备相关联的缓冲区. 注:在调试程序过程中插入的输出语句都应刷新输出流,否则可能会造成程序崩溃,将会导致程序出 ...

  4. 01 Spring Boot 的简单配置和使用

    Spring Boot 简介 使用 Spring Boot 可以让我们快速创建一个基于 Spring 的项目,而让这个 Spring 项目跑起来我们只需要很少的配置就可以了. 创建 Spring Bo ...

  5. BZOJ 3093: [Fdu校赛2012] A Famous Game

    3093: [Fdu校赛2012] A Famous Game Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 242  Solved: 129[Subm ...

  6. 【BZOJ5252】林克卡特树(动态规划,凸优化)

    [BZOJ5252]林克卡特树(动态规划,凸优化) 题面 BZOJ(交不了) 洛谷 题解 这个东西显然是随着断开的越来越多,收益增长速度渐渐放慢. 所以可以凸优化. 考虑一个和\(k\)相关的\(dp ...

  7. Nginx web服务优化 (一)

    1.Nginx基本安全优化 a.更改配置文件参数隐藏版本 编辑nginx.conf配置文件增加参数,实现隐藏Nginx版本号的方式如下.在nginx配置文件nginx.conf中的http标签段内加入 ...

  8. 网络对抗课题4.3.1 SQL注入原理与实践

    网络对抗课题4.3.1 SQL注入原理与实践 原理 SQL注入漏洞是指在Web应用对后台数据库查询语句处理存在的安全漏洞.也就是,在输入字符串中嵌入SQL指令,在设计程序中忽略对可能构成攻击的特殊字符 ...

  9. 解题:CQOI 2017 老C的任务

    题面 找到真正的KD-Tree题目了!然而出题人并不打算放KD-Tree过,只能O2了 // luogu-judger-enable-o2 #include<cstdio> #includ ...

  10. 解题:NOI 2016 优秀的拆分

    题面 其实题目不算很难,但是我调试的时候被玄学了,for循环里不写空格会RE,写了才能过.神**调了一个多小时是这么个不知道是什么的玩意(真事,可以问i207M=.=),心态爆炸 发现我们只要找AA或 ...