python的日志工具logging
来源:互联网 发布:卖家退出淘宝客 编辑:程序博客网 时间:2024/05/17 14:20
http://blog.csdn.net/wh62592855/article/details/6024544
在python的logging模块中主要有四个组件:
logger: 日志类,应用程序往往通过调用它提供的api来记录日志。
handler: 对日志信息处理,可以将日志发送(保存)到不同的目标域中。
filter: 对日志信息进行过滤。
formatter:日志的格式化。
下面写了一个简单的脚本试一下各个组件的功能
import logging
#创建两个日志类
LOG1=logging.getLogger('a.b.c')
LOG2=logging.getLogger('d.e')
#创建handler对象
console = logging.FileHandler('/home/dwapp/joe.wangh/test/logging/test.log','a')
#设置日志输出信息的格式
formatter = logging.Formatter('%(name)s %(asctime)s %(levelname)s %(message)s')
console.setFormatter(formatter)
#设置过滤器 可以设置多个过滤器 只要日志信息不满足其中任何一个 就不会被输出
filter=logging.Filter('a.b')
#console.addFilter(filter)
#给两个日志类绑定handler对象
LOG1.addHandler(console)
LOG2.addHandler(console)
#设置输出日志信息的等级 这里设为logging.INFO 意味着只输出高于logging.INFO等级的日志信息
LOG1.setLevel(logging.INFO)
LOG2.setLevel(logging.DEBUG)
#输出一些日志信息
LOG1.debug('debug')
LOG1.info('info')
LOG1.warning('warning')
LOG1.error('error')
LOG1.critical('critical')
LOG2.debug('debug')
LOG2.info('info')
LOG2.warning('warning')
LOG2.error('error')
LOG2.critical('critical')
运行一下看看结果
dwapp@pttest1:/home/dwapp/joe.wangh/test/logging>python t1.py
dwapp@pttest1:/home/dwapp/joe.wangh/test/logging>cat test.log
a.b.c 2010-11-24 18:53:20,160 INFO info
a.b.c 2010-11-24 18:53:20,183 WARNING warning
a.b.c 2010-11-24 18:53:20,183 ERROR error
a.b.c 2010-11-24 18:53:20,183 CRITICAL critical
d.e 2010-11-24 18:53:20,183 DEBUG debug
d.e 2010-11-24 18:53:20,183 INFO info
d.e 2010-11-24 18:53:20,184 WARNING warning
d.e 2010-11-24 18:53:20,184 ERROR error
d.e 2010-11-24 18:53:20,184 CRITICAL critical
把#console.addFilter(filter)的注释取消掉 再执行一遍
dwapp@pttest1:/home/dwapp/joe.wangh/test/logging>python t1.py
dwapp@pttest1:/home/dwapp/joe.wangh/test/logging>
dwapp@pttest1:/home/dwapp/joe.wangh/test/logging>cat test.log
a.b.c 2010-11-24 18:54:33,264 INFO info
a.b.c 2010-11-24 18:54:33,287 WARNING warning
a.b.c 2010-11-24 18:54:33,287 ERROR error
a.b.c 2010-11-24 18:54:33,287 CRITICAL critical
我们看到 这次以d.e开头的日志信息都被过滤掉了
下面附上formatter的一些信息
%(name)s
Logger的名字
%(levelno)s
数字形式的日志级别
%(levelname)s
文本形式的日志级别
%(pathname)s
调用日志输出函数的模块的完整路径名,可能没有
%(filename)s
调用日志输出函数的模块的文件名
%(module)s
调用日志输出函数的模块名
%(funcName)s
调用日志输出函数的函数名
%(lineno)d
调用日志输出函数的语句所在的代码行
%(created)f
当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d
输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s
字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d
线程ID。可能没有
%(threadName)s
线程名。可能没有
%(process)d
进程ID。可能没有
%(message)s
用户输出的消息
- python的日志工具logging
- python模块介绍- logging 日志工具
- python 的日志logging模块
- python 的日志logging模块
- 日志工具 Commons Logging 的使用方法
- python 的日志logging模块学习
- Python:日志模块logging的应用
- python 的日志logging模块学习
- python 的日志logging模块学习
- python的日志logging模块使用总结
- python之强大的日志模块logging
- python 的日志logging模块学习
- python 的日志logging模块学习
- python 的日志logging模块学习
- python的logging标准日志模块1
- python 的日志logging模块学习
- python 的日志logging模块学习(2)
- python 的日志logging模块介绍
- Android主题与样式
- 如何开启MySQL的远程帐号
- 深入浅出VC++串口编程之基于Win32 API
- android BroadcastReceiver广播接受器的使用
- sqlnet.expire_time and idle_time
- python的日志工具logging
- 基于.NET 的WebSocket 的简单实例 --- 数据格式
- 按条件替换——定位条件+替换
- android 之【九种对话框】的实现方式
- Linux程序设计——POSIX线程
- 为奇数和偶数行设置不同的格式
- 浏览器兼容性剖析
- poj3667 线段树(区间合并)
- 第十周任务二