简单示例
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 不同的方法打印日志,便于快速找到出错情况。