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): #創(chuàng)建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個,刪除最早生成的日志。
image.png
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s') 定義日志輸出的格式
log().debug('test.log','Hello World...')
日志輸出:
image.png