参考链接:
https://docs.python.org/3/library/logging.html#module-logging
http://www.cnblogs.com/dkblog/archive/2011/08/26/2155018.html
1.模块介绍
logging模块是Python内置的标准模块,主要用于输出运行日志,可以设置输出日志的等级、日志保存路径、日志文件回滚等;相比print,具备如下优点:
可以通过设置不同的日志等级,在release版本中只输出重要信息,而不必显示大量的调试信息;
print将所有信息都输出到标准输出中,严重影响开发者从标准输出中查看其它数据;
logging则可以由开发者决定将信息输出到什么地方,以及怎么输出;
2.常见用途
2.1将日志输出到指定目录
import logging
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)
logger.addHandler(handler)
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")
2.2日志滚动配置
#定义一个RotatingFileHandler,最多备份10个日志文件,每个日志文件最大100M
import logging
from logging.handlers import RotatingFileHandler
Rthandler = RotatingFileHandler('myapp.log', maxBytes=100*1024*1024,backupCount=10)
Rthandler.setLevel(logging.INFO)
formatter = logging.Formatter('%(name)-12s: %(levelname)-8s %(message)s')
Rthandler.setFormatter(formatter)
logging.getLogger('').addHandler(Rthandler)