logging分为4个模块: loggers, handlers, filters, and formatters.
Logger.setLevel()   设置日志级别 
Logger.addHandler()和Logger.removeHandler()  增加和删除日志处理器 
Logger.addFilter()和Logger.removeFilter()    增加和删除过滤器 
Logger.debug(), Logger.info(), Logger.warning(), Logger.error(), and Logger.critical()  创建不同的级别的日志 
getLogger() 获取日志的根实例
setLevel()  设置日志级别 
setFormatter()  设置输出格式 
addFilter() and removeFilter()  增加和删除过滤器
默认形式为:  %Y-%m-%d %H:%M:%S. 
格式为:     %()s
import logging
# create logger
logger = logging.getLogger(‘simple_example‘)
logger.setLevel(logging.DEBUG)
# create console handler and set level to debug
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# create formatter
formatter = logging.Formatter(‘%(asctime)s - %(name)s - %(levelname)s - %(message)s‘)
# add formatter to ch
ch.setFormatter(formatter)
# add ch to logger
logger.addHandler(ch)
# ‘application‘ code
logger.debug(‘debug message‘)
logger.info(‘info message‘)
logger.warn(‘warn message‘)
logger.error(‘error message‘)
logger.critical(‘critical message‘)输出
$ python simple_logging_module.py
2005-03-19 15:10:26,618 - simple_example - DEBUG - debug message
2005-03-19 15:10:26,620 - simple_example - INFO - info message
2005-03-19 15:10:26,695 - simple_example - WARNING - warn message
2005-03-19 15:10:26,697 - simple_example - ERROR - error message
2005-03-19 15:10:26,773 - simple_example - CRITICAL - critical message代码:
import logging
import logging.config
logging.config.fileConfig(‘logging.conf‘)
# create logger
logger = logging.getLogger(‘simpleExample‘)
# ‘application‘ code
logger.debug(‘debug message‘)
logger.info(‘info message‘)
logger.warn(‘warn message‘)
logger.error(‘error message‘)
logger.critical(‘critical message‘)配置文件:
[loggers]
keys=root,simpleExample
[handlers]
keys=consoleHandler
[formatters]
keys=simpleFormatter
[logger_root]
level=DEBUG
handlers=consoleHandler
[logger_simpleExample]
level=DEBUG
handlers=consoleHandler
qualname=simpleExample
propagate=0
[handler_consoleHandler]
class=StreamHandler
level=DEBUG
formatter=simpleFormatter
args=(sys.stdout,)
[formatter_simpleFormatter]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
datefmt=输出:
$ python simple_logging_config.py
2005-03-19 15:38:55,977 - simpleExample - DEBUG - debug message
2005-03-19 15:38:55,979 - simpleExample - INFO - info message
2005-03-19 15:38:56,054 - simpleExample - WARNING - warn message
2005-03-19 15:38:56,055 - simpleExample - ERROR - error message
2005-03-19 15:38:56,130 - simpleExample - CRITICAL - critical message%(levelno)s: 打印日志级别的数值 
 %(levelname)s: 打印日志级别名称 
 %(pathname)s: 打印当前执行程序的路径,其实就是sys.argv[0] 
 %(filename)s: 打印当前执行程序名 
 %(funcName)s: 打印日志的当前函数 
 %(lineno)d: 打印日志的当前行号 
 %(asctime)s: 打印日志的时间 
 %(thread)d: 打印线程ID 
 %(threadName)s: 打印线程名称 
 %(process)d: 打印进程ID 
 %(message)s: 打印日志信息
原文地址:http://blog.csdn.net/csujiangyu/article/details/44753923