1. 简单的打印日志到屏幕
一共有5级日志级别:紧急,错误,警告,信息和调试(Critical->Error->Warning->Info->Debug)。
# coding=gbk import logging logging.debug('This is debug message') logging.info('This is info message') logging.warning('This is warning message')
运行结果:
WARNING:root:This is warning message
默认情况下,logging将日志打印到屏幕,日志级别为Warning。
2. 通过logging.basicConfig函数配置日志输出格式
# coding=gbk import os import logging os.chdir('E:python_practice') logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s', datefmt = '%a, %d %b %Y %H:%M:%S', filename = 'practice.log', filemode = 'w') logging.debug("Debug message") logging.info("Info message") logging.warning("Warning message")
查看practice.log,内容如下:
Mon, 18 Jan 2016 17:11:31 dailytest.py[line:10] DEBUG Debug message Mon, 18 Jan 2016 17:11:31 dailytest.py[line:11] INFO Info message Mon, 18 Jan 2016 17:11:31 dailytest.py[line:12] WARNING Warning message
各参数详解:
filename: 指定日志文件名 filemode: 指定日志文件的打开模式,'w'或'a' format: 指定输出的格式和内容,format可以输出很多有用信息,如上例所示: %(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: 打印日志信息 datefmt: 指定时间格式,同time.strftime() level: 设置日志级别,默认为logging.WARNING stream: 指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当stream和filename同时指定时,stream被忽略
参考:
http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html