文档章节

如何使用Python的logging模块

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

几个学习连接:

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
私信 提问
Python第三章模块-张明阳-专题视频课程

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

安静的技术控
04/20
0
0
python模块介绍- logging 日志工具

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

长平狐
2013/12/25
285
0
wlst+python

Problem invoking WLST - Traceback (innermost last): File "/app/mca/monitor/write2.py", line 1, in ? ImportError: no module named logging 想要通过在wlst中使用python脚本获取监控信......

尴尬中出
02/26
240
1
使用Logging Handler自动上传Python程序日志到日志服务

想要日志上云,又不想修改程序代码? 或者不希望进行相对复杂的客户端部署?那么您需要使用Logging Handler,现在Python程序也支持了! 概述 使用Python SDK提供的Log Handler可以实现每一条P...

成喆
04/13
0
0
【资料整理】Python - 简单的epoll server代码解读

作为 Python 的初学者,学习别人的代码也是必要过程,本文主要是针对 《Python中使用epoll开发服务端程序》中的代码,进行源码注释说明。从代码中至少可以学习到如下三点: logging 模块的使...

摩云飞
2013/07/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

函数计算工具链新成员 —— Fun Local 发布啦

刚刚,我们发布了函数计算工具链的新成员,Fun Local。欢迎大家使用! 如果你还不了解 Fun 是什么,我们来简单解释下。 Fun 是什么 Fun 是 have Fun with Serverless 的缩写,是一款 Server...

阿里云官方博客
5分钟前
0
0
Linux下实现 OpenSSL 简单加密与解密字符串

场景 shell脚本中存在明文密码 客户要求禁止使用明文密码,密码做加密处理. 方案 在网上了解到了Linux OpenSSL加密解密工具 可以指定各种加密算法为字符,文件做加密处理. 加密的案例比较多,解...

问题终结者
7分钟前
0
0
ActiveMQ 消息中间件

什么是ActiveMQ ActiveMQ是Apache出品,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2E...

ashuo
12分钟前
0
0
详解ECMAScript typeof用法

typeof 返回变量的类型字符串值 、其中包括 “object”、“number”、“string”、“undefined”、“boolean”、 1、在变量只声明、却不初始化值 Or 在变量没有声明时 返回 “undefined” > ...

peakedness丶
13分钟前
0
0
函数计算性能福利篇(二) —— 业务冷启动优化

继前一篇《函数计算性能福利篇——系统冷启动优化》,我们再来看看近期函数计算推出的 Initializer 功能之后,带来的一波高能性能优化成果。 背景 函数计算是一个事件驱动的全托管 serverle...

阿里云云栖社区
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部