python模块-logging的智商上限
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的智商上限的更多相关文章
- python模块 ---logging模块
摘要by crazyhacking: 与log4cxx一样,分为三个部分,logger, handler,formatter. 详细内容参考:1官网http://docs.python.org/2/h ...
- Python模块——logging模块
logging模块简介 logging模块定义的函数和类为应用程序和库的开发实现了一个灵活的事件日志系统.logging模块是Python的一个标准库模块, 由标准库模块提供日志记录API的关键好处是 ...
- python模块--logging
一.logging模块的简单应用 import logging logging.debug('debug message') logging.info('ingo message') logging. ...
- Python模块logging
基本用法: import logging import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("A ...
- Python模块-logging模块(一)
logging模块用来写日志文件 有5个级别,debug(),info(),warning(),error()和critical(),级别最高的为critical() debug()为调试模式,inf ...
- [Python 模块] logging模块、Logger类
logging模块: 标准库里面的logging模块,在前面学习线程安全时曾用来解决print被打断的问题,这里会介绍logging模块的功能. logging模块是线程安全的,不需要客户做任何特殊的 ...
- Python模块-logging模块(二)
logging模块记录日志有四个主要类:logger,handler,formatter,filter logger提供了应用程序可以直接使用的接口,每个程序在输出信息之前都要获得一个Logger h ...
- python 模块之-logging
python 模块logging import logging ### 简单使用格式 日志级别等级CRITICAL > ERROR > WARNING > INFO > ...
- python的logging日志模块(二)
晚上比较懒,直接搬砖了. 1.简单的将日志打印到屏幕 import logging logging.debug('This is debug message') logging.info('Thi ...
随机推荐
- [转帖]overlay文件系统解析
overlay文件系统解析 来源:http://dockone.io/article/1511 原作者: 陈爱珍 布道师@七牛云 一个 overlay 文件系统包含两个文件系统,一个 upper 文件 ...
- Html5 web 本地存储 (localStorage、sessionStorage)
HTML5 提供了两种在客户端存储数据的新方法localStorage,sessionStorage sessionStorage(临时存储) :为每一个数据源维持一个存储区域,在浏览器打开期间存在, ...
- 2018 南京icpc现场赛总结
Day 0 提前5个小时从学校出发,在登机口坐下时,飞机还有1个多小时起飞. 航班准时起飞,到了南京以后直接坐地铁到学校附近(南京地铁票也太精致了吧). 因为天已经黑了,就只在学校附近转了一圈就回酒店 ...
- Day24-part1-原生Ajax
参考老师博客:http://www.cnblogs.com/wupeiqi/articles/5703697.html 主要讲了:发数据的3种方式以及上传文件的3种方式.(后续需要总结) 一,原生Aj ...
- 【刷题】HDU 6183 Color it
Problem Description Do you like painting? Little D doesn't like painting, especially messy color pai ...
- 【XSY1841】Intervals
Description 在一个长度为m的序列中选出n个区间,这些区间互不包含,且至少有一个区间的左端点为x. 问有多少种方案,注意交换两个区间的顺序视为不同方案. 答案很大,输出模10000000 ...
- [APIO2009]采油区域
题目描述 Siruseri 政府决定将石油资源丰富的 Navalur 省的土地拍卖给私人承包商以 建立油井.被拍卖的整块土地为一个矩形区域,被划分为 M×N 个小块. Siruseri 地质调查局有关 ...
- Chapter3 (字符串,向量,数组) --C++Prime笔记
1.using用法:using namespace ::name;注意事项:一般不在头文件使用using否则很容易导致运用命名空间不对错误. 2.string的方法: ①getline(输入流,str ...
- haproxy做TCP层的负载均衡
最新项目中发现,大量游戏玩家访问登录服务器时出现延迟,导致玩家无法登录,愿意可能是登录服务器性能达到极限. 所以目前想通过proxy的方式访问登录服务器集群,避免登录延迟. 1.下载haproxy最新 ...
- python与pycharm
什么叫自动化测试? 通俗来说,自动化测试就是通过写代码来帮我们测试软件.用来做自动化测试的语言很多,python,Java,php,Go,ruby等.而且软件系统开发语言与自动化测试语言可以不一致.例 ...