'''
收集存放日志
2021/3/1
'''
# coding=utf-8
import logging
import time
import os
'''
生成log存放目录
'''
# 输出当前文件目录, 在目录最终拼接‘logs’
log_path = os.path.join(os.path.dirname(os.path.dirname(os.path.realpath(__file__))), 'logs')
# a 返回布尔值,是否存在该目录
a = os.path.exists(log_path)
# 判断目录是否存在,如果不存在,则创建目录
if a == False:
os.mkdir(log_path)
# 生成log
class Log:
def __init__(self):
pass
# 初始化创建一个带时间戳的log文件
# self.logname = os.path.join(log_path, '{0}.log'.format(time.strftime('ttt'+'%Y-%m-%d-%H.%M')))
# 创建一个log handler收集log
def __printconsole(self, level, message):
# 初始化创建一个带时间戳的log文件
self.logname = os.path.join(log_path, '{0}.log'.format(time.strftime(level + '%Y-%m-%d-%H.%M')))
# 定义一个logger
logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
# 创建一个handler
filehandler = logging.FileHandler(self.logname, mode='a', encoding='utf-8')
filehandler.setLevel(logging.DEBUG)
# 在创建一个handler, 输出到打印台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 定义hanlder输出格式
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
filehandler.setFormatter(formatter)
ch.setFormatter(formatter)
# 将log添加到handler
logger.addHandler(filehandler)
logger.addHandler(ch)
# 记录日志
if level == 'debug':
logger.debug(message)
if level == 'info':
logger.info(message)
if level == 'warning':
logger.warning(message)
if level == 'error':
logger.error(message)
# 关闭handler
logger.removeHandler(filehandler)
logger.removeHandler(ch)
# 关闭文件
filehandler.close()
def debug(self, message):
self.__printconsole('debug', message)
def info(self, message):
self.__printconsole('info', message)
def warning(self, message):
self.__printconsole('warning', message)
def error(self, message):
self.__printconsole('error', message)
# 测试
Log().debug('This log is info')