文档章节

如何使用Python的logging模块

m
 millerblack
发布于 2015/06/16 22:36
字数 499
阅读 194
收藏 0

码上生花,ECharts 作品展示赛正式启动!>>>

几个学习连接:

Python官方链接:

https://docs.python.org/3.4/library/logging.html?highlight=logging

翻译(不过是2.3版本的)

http://crazier9527.iteye.com/blog/290018

另外的一个人的总结:

http://blog.csdn.net/fxjtoday/article/details/6307285

最好理解,写的最好的:

http://bbs.chinaunix.net/thread-3590256-1-1.html

 

我的学习总结基于http://bbs.chinaunix.net/thread-3590256-1-1.html


 

以一个简单的日志系统为例子进行说明:

目标:创建一个日志系统,这个日志系统不仅能把信息输出到控制台,还可以输出到文件。

 

#import logging包
import logging
 
#创建一个logger,getLogger的参数是logger的名字
logger=logging.getLogger('lylogger')
#设置logger的等级,大于等于这个等级的信息会被输出,其他会被忽略
logger.setLevel(logging.DEBUG)
 
#Handler是英文翻译为处理者,用于输出到不同的地方:Stream为控制台,File为文件
#以下创建的是输出到文件的handler,并把等级设为DEBUG
fh=logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)
 
#以下创建的是输出到控制台的handler,并把等级设为DEBUG
sh=logging.StreamHandler()
sh.setLevel(logging.DEBUG)
 
#下面指定了handler的信息输出格式,其中asctime,name,levelname,message都是logging的关键字
formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)
sh.setFormatter(formatter)
 
#把Handler加入到logger中,可理解为给处理者在logger中安排了职位
logger.addHandler(fh)
logger.addHandler(sh)
 
#记录一条为”Hello,Arsenal!”的info日志信息
logger.info('Hello,Arsenal!')
print("process end!")

注意:

Logger.setLevel(lvl)
设置loggerlevel, level有以下几个级别:
NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
如果把looger的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出

 



思考题:

运行下面的日志系统,找出错误并改正。

 

import logging
 
logger=logging.getLogger('lylogger')
logger.setLevel(logging.DEBUG)
 
fh=logging.FileHandler('test.log')
fh.setLevel(logging.DEBUG)
 
sh=logging.StreamHandler()
sh.setLevel(logging.DEBUG)
 
formatter=logging.Formatter('%(asctime)s - %(name)s - %(levlename)s - %(message)s')
fh.setFormatter(formatter)
sh.setFormatter(formatter)
 
logger.addHandler(fh)
logger.addHandler(sh)
 
logger.info('Hello,Arsenal!')
print("process end!")




答案:

通过查看错误信息,定位Key :levlename,得知关键字levelname写错了。


© 著作权归作者所有

m
粉丝 0
博文 4
码字总数 2800
作品 0
私信 提问
加载中
请先登录后再评论。
利用logging.basicConfig生成文件--中文乱码解决方法

[TOC] logging 模块 logging 模块是 Python 内置的标准模块, 主要用于输出运行日志logging 可以设置信息输出位置, 以及如何输出 可以设置输出日志的等级, 保存路径, 日志文件回滚等 可以通过...

osc_7c6h7z9p
2019/04/05
8
0
Python Logging 模块完全解读

Python 中的 logging 模块可以让你跟踪代码运行时的事件,当程序崩溃时可以查看日志并且发现是什么引发了错误。Log 信息有内置的层级——调试(debugging)、信息(informational)、警告(w...

jack_Meng
05/07
0
0
Python第三章模块-张明阳-专题视频课程

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a2011480169/article/details/83580545 Python第三章模块—142人已学习 课程介绍 介绍Python在项目当中常用的...

安静的技术控
2018/04/20
0
0
Django 日志配置按日期滚动

记录下Django关于日期的配置,以及如何根据日期滚动切割日志的问题。 配置的源码在githun上 https://github.com/blackmatrix7/django-examples/tree/master/django_logs 准备 环境 python 3...

osc_w0y1cpjl
2018/05/21
9
0
python模块介绍- logging 日志工具

python模块介绍- logging 日志工具 目录 项目简介... 1 简介:... 2 应用程序和库中使用Logging. 3 记录日志到文件... 4 日志文件轮转... 4 日志级别... 5 日志实例命名... 6 项目简介 Pyth...

长平狐
2013/12/25
501
0

没有更多内容

加载失败,请刷新页面

加载更多

UltraEdit for Mac 20.00.0.32 文本编辑器

MacOS上最受欢迎的文本编辑器是哪款?UltraEdit Mac版支HTML、PHP、Perl、Java 和 JavaScript 等众多流行计算机高级语言的程序编辑器,Ultraedit与Notepad ++相比。你可以直接用它来修改exe...

麦克W
24分钟前
10
0
java垃圾回收机制的理解

Java垃圾回收机制算法 标记----清除算法 复制算法 标记----整理算法 分代收集算法 为什么要进行垃圾回收 因为当一个对象的引用不可达,或者一个对象没有任何引用指向它,那么它就没有必要在内...

RandomObject
37分钟前
13
0
Java集合常见面试题

Java集合框架 集合框架底层数据结构总结 Arraylist 与 LinkedList 异同 是否保证线程安全: ArrayList 和 LinkedList 都是不同步的,也就是不保证线程安全; 底层数据结构: Arraylist 底层使...

JaneRoad
40分钟前
18
0
Makefile中.PHONY的作用是什么? - What is the purpose of .PHONY in a makefile?

问题: What does .PHONY mean in a Makefile? .PHONY在Makefile中是什么意思? I have gone through this , but it is too complicated. 我已经经历过了 ,但是它太复杂了。 Can somebody e......

法国红酒甜
44分钟前
15
0
看了同事的代码,我忍不住写了这份代码指南

❝ 作者:xybaby 链接:https://www.cnblogs.com/xybaby/p/11335829.html ❞ 前言 写出整洁的代码,是每个程序员的追求。《clean code》指出,要想写出好的代码,首先得知道什么是肮脏代码、...

osc_fvp5wdwk
今天
24
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部