python之强大的日志模块
时间:2010-06-26 来源:zhaohang3031
1.简单的将日志打印到屏幕
import logging
屏幕上打印: |
默认情况下,logging将日志打印到屏幕,日志级别为WARNING
日志级别大小关系为:CRITICAL > ERROR > WARNING > INFO > DEBUG > NOTSET
当然也可以自己定义日志级别。
2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置
import logging
./myapp.log文件中内容为:
logging.basicConfig函数各参数: |
3.将日志同时输出到文件和屏幕
import logging
屏幕上打印:
./myapp.log文件中内容为: |
4.logging之日志回滚
import logging |
从上例和本例可以看出,logging有一个日志处理的主对象,其它处理方式都是通过addHandler添加进去的。
logging的几种handle方式如下:
logging.StreamHandler: 日志输出到流,可以是sys.stderr、sys.stdout或者文件
日志回滚方式,实际使用时用RotatingFileHandler和TimedRotatingFileHandler
logging.handlers.SocketHandler: 远程输出日志到TCP/IP sockets |
由于StreamHandler和FileHandler是常用的日志处理方式,所以直接包含在logging模块中,而其他方式则包含在logging.handlers模块中,
上述其它处理方式的使用请参见python2.5手册!
5.通过logging.config模块配置日志
#logger.conf ###############################################
[loggers]
[logger_root]
[logger_example01]
[logger_example02] ###############################################
[handlers]
[handler_hand01]
[handler_hand02]
[handler_hand03] ###############################################
[formatters]
[formatter_form01]
[formatter_form02] |
上例3:
import logging |
上例4:
import logging |
6.logging是线程安全的
7.logging在低版本(如 2.3.4)中用法有少许差别:
(因为我用 RedHat 4.3 里面自带的版本就是这个)
下面脚本将信息全部输入日志,无终端显示:
#!/usr/bin/env python |