Python的logging使用

来源:互联网 发布:程序员 架构师 编辑:程序博客网 时间:2024/06/05 19:18

功能简介

Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用。logging模块与log4j的机制是一样的,只是具体的实现细节不同。模块提供logger,handler,filter,formatter。
Logger记录器:提供日志接口,供应用代码使用。logger最长用的操作有两类:配置和发送日志消息。可以通过logging.getLogger(name)获取logger对象,如果不指定name则返回root对象。多次使用相同的name调用getLogger方法,返回同一个logger对象。
Handler处理器:将日志记录(log record)发送到合适的目的地(destination),比如文件、控制台、socket等。一个logger对象可以通过addHandler方法添加0到多个handler,每个handler又可以定义不同日志级别,以实现日志分级过滤显示。
Filter过滤器:提供了更好的粒度控制,它可以决定输出哪些日志记录。
Formatter格式化器:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。

简单测试

默认情况下,logging模块将日志打印到屏幕上(stdout),日志级别为WARNING(即只有日志级别高于WARNING的日志信息才会输出)

import logginglogging.debug('debug message')logging.info('info message')logging.warn('warn message')logging.error('error message')logging.critical('critical message')

输出:

WARNING:root:warn messageERROR:root:error messageCRITICAL:root:critical message
#coding:utf-8  import logging  # 创建一个logger    logger = logging.getLogger()  logger1 = logging.getLogger('mylogger')  logger1.setLevel(logging.DEBUG)  logger2 = logging.getLogger('mylogger')  logger2.setLevel(logging.INFO)# 创建一个handler,用于写入日志文件    fh = logging.FileHandler('/tmp/test.log')  # 定义handler的输出格式formatter    formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')  fh.setFormatter(formatter)logger.addHandler(fh)  logger.debug('logger debug message')  logger.info('logger info message')  logger.warning('logger warning message')  logger.error('logger error message')  logger.critical('logger critical message')  logger1.debug('logger1 debug message')  logger1.info('logger1 info message')  logger1.warning('logger1 warning message')  logger1.error('logger1 error message')  logger1.critical('logger1 critical message')  logger2.debug('logger2 debug message')  logger2.info('logger2 info message')  logger2.warning('logger2 warning message')  logger2.error('logger2 error message')  logger2.critical('logger2 critical message') 

输出:

2014-05-06 12:54:43,222 - root - WARNING - logger warning message2014-05-06 12:54:43,223 - root - ERROR - logger error message2014-05-06 12:54:43,224 - root - CRITICAL - logger critical message2014-05-06 12:54:43,224 - mylogger - INFO - logger1 info message2014-05-06 12:54:43,224 - mylogger - INFO - logger1 info message2014-05-06 12:54:43,225 - mylogger - WARNING - logger1 warning message2014-05-06 12:54:43,225 - mylogger - WARNING - logger1 warning message2014-05-06 12:54:43,226 - mylogger - ERROR - logger1 error message2014-05-06 12:54:43,226 - mylogger - ERROR - logger1 error message2014-05-06 12:54:43,227 - mylogger - CRITICAL - logger1 critical message2014-05-06 12:54:43,227 - mylogger - CRITICAL - logger1 critical message2014-05-06 12:54:43,228 - mylogger - INFO - logger2 info message2014-05-06 12:54:43,228 - mylogger - INFO - logger2 info message2014-05-06 12:54:43,229 - mylogger - WARNING - logger2 warning message2014-05-06 12:54:43,229 - mylogger - WARNING - logger2 warning message2014-05-06 12:54:43,230 - mylogger - ERROR - logger2 error message2014-05-06 12:54:43,230 - mylogger - ERROR - logger2 error message2014-05-06 12:54:43,231 - mylogger - CRITICAL - logger2 critical message2014-05-06 12:54:43,231 - mylogger - CRITICAL - logger2 critical message

参考

http://blog.csdn.net/chosen0ne/article/details/7319306
http://blog.csdn.net/zyz511919766/article/details/25136485/
http://www.jianshu.com/p/feb86c06c4f4

原创粉丝点击