简单示例

import sys
import ctypes
import logging
import logging.handlers


reload(sys)
sys.setdefaultencoding('utf-8')

LOG_FILE = 'test_log'

logging.basicConfig(
filename = LOG_FILE,
format = '%(asctime)s - %(levelname)s -%(process)d- %(filename)s:%(funcName)s:%(lineno)d - %(message)s',
level = logging.DEBUG)
logging.handlers.TimedRotatingFileHandler(LOG_FILE, when='W0', backupCount=5)
logger = logging.getLogger(__name__)


if __name__ == "__main__":
logger.info("hello info")
logger.error("hello info")
logger.warn("hello info")



在filename的位置 可以填 相对位置 ,也可以填绝对位置 。

这个format = '%(asctime)s - %(levelname)s -%(process)d- %(filename)s:%(funcName)s:%(lineno)d - %(message)s  信息比较全,其他还有

 %(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: 打印日志信息

用 info和 error 不同的方法打印日志,便于快速找到出错情况。