# -*- coding: utf-8 -*- #这个是引文中文输出加的
import logging
import os,time,sys
from logging import Logger
from logging.handlers import TimedRotatingFileHandler
class FinalLogger:
def init_logger(self, logger_name):
#输出日志的路径sys.path[0]=当前目录路径 D:/
if logger_name not in Logger.manager.loggerDict:
logger = logging.getLogger(logger_name)
logger.setLevel(logging.DEBUG)
allfilename ='log_' + time.strftime('%Y%m%d', time.localtime()) + '.log'
errorfilename = 'error_' + time.strftime('%Y%m%d', time.localtime()) + '.log'
all_log_file = os.path.join(logPath,allfilename)
error_log_file = os.path.join(logPath,errorfilename)
datefmt = '%Y-%m-%d %H:%M:%S'
format_str ='[%(asctime)s]%(levelname)s: %(message)s - %(filename)s:%(lineno)d' #'[%(asctime)s]: %(name)s %(levelname)s %(lineno)s %(message)s'
#info日志输出
all_log_handler = TimedRotatingFileHandler(all_log_file, when = 'midnight', backupCount=7)
#m_formatter = logging.Formatter('[%(asctime)s - %(name)s]%(levelname)s: %(message)s - %(filename)s:%(lineno)d ')
formatter = logging.Formatter(format_str, datefmt)
all_log_handler.setFormatter(formatter)
all_log_handler.setLevel(logging.INFO)
logger.addHandler(all_log_handler)
#handler error日志输出
error_log_handler = TimedRotatingFileHandler(error_log_file, when = 'midnight', backupCount=7)
error_log_handler.setFormatter(formatter)
error_log_handler.setLevel(logging.ERROR)
logger.addHandler(error_log_handler)
logger = logging.getLogger(logger_name)
return logger
#调试方法
#用法类之前就加上
# logger=FinalLogger()
#logger=logger.init_logger(os.path.basename(__file__)) 然后直接logger.info(msg)
if __name__=='__main__':
logPath = sys.path[0].split("\\")[0] + '/' + sys.path[0].split("\\")[1] + '/logs/'
logger=FinalLogger()
logger=logger.init_logger(logPath)
logger.info("lide")