python实现log日志输出并管理日志文件
功能:
用于py脚本的log记录, 以天为单位(每天都会生成一个新的log文件),log文件在目录下最多保留7天
创建脚本:
建立log.py文件,内容如下:
import os
import time
import logging
import datetime
from logging import handlers
def record(**kwargs):
filename = kwargs['filename']
level = kwargs['level']
datefmt = kwargs.pop('datefmt', None)
format = kwargs.pop('format', None)
if level is None:
level = logging.INFO
if datefmt is None:
datefmt = '%Y-%m-%d %H:%M:%S'
if format is None:
format = '%(asctime)s [%(module)s] %(levelname)s [%(lineno)d] %(message)s'
log = logging.getLogger(filename)
format_str = logging.Formatter(format, datefmt)
th = handlers.TimedRotatingFileHandler(filename=filename, backupCount=7, when='midnight', encoding='utf-8')
th.setFormatter(format_str)
th.setLevel(level)
log.addHandler(th)
log.setLevel(level)
return log
使用方法:
(1)在需要的脚本中 ‘import logging’,‘from log import record’导入模块
(2)在需要的脚本中建立句柄 logger = record(filename=’./log/aaa.log’,level=log_level)
注意事项:
(1) log存放的路径,需提前建立好文件夹
(2)其中log_level参数有logging.INFO logging.WARNING logging.ERROR 三种级别,意思为打印log的最小记录级别
例子:
import logging
from log import record
logger = record(filename='./log/aaa.log',level=logging.INFO)
for i in range(5):
logger.info(i)