python的日志模块使用logging,如果想要输出符合自己的预期,需要重新定义,废话不多说,直接贴代码。
# encoding: utf -8 from logging.handlers import TimedRotatingFileHandler import logging import os import inspect #调用方法log.debug('logname.log','输出内容') this_file = inspect.getfile(inspect.currentframe()) path = os.path.abspath(os.path.dirname(this_file)) class log: def __init__(self): if os.path.isdir('%s\log'%path): #创建log文件夹 pass else: os.mkdir('%s\log'%path) def debug(self,logname,kwarg): logFilePath = '%s\log\%s'%(path,logname) logger = logging.getLogger("yourName") logger.setLevel(logging.DEBUG) handler = TimedRotatingFileHandler(logFilePath, when="midnight", interval=1, backupCount=20) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.debug('%s'%(kwarg)) logger.removeHandler(handler) def error(self,logname,kwarg): logFilePath = '%s\log\%s'%(path,logname) logger = logging.getLogger("yourName") logger.setLevel(logging.ERROR) handler = TimedRotatingFileHandler(logFilePath, when="midnight", interval=1, backupCount=20) formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') handler.setFormatter(formatter) logger.addHandler(handler) logger.error('%s'%(kwarg)) logger.removeHandler(handler)
handler = TimedRotatingFileHandler(logFilePath, when="midnight", interval=1, backupCount=20) 定义写入日志的策略:
1.每天一个日志文件。
2.超过20个,删除最早生成的日志。
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 定义日志输出的格式
log().debug('test.log','Hello World...')
日志输出: