logging的用法可参考:logging基础用法_创建logger对象_wsx601的博客-CSDN博客
import logging
import os
import time
class Logger(object):
def __init__(self,logger=None):
# 创建一个logger
self.logger = logging.getLogger(logger)
self.logger.setLevel(logging.DEBUG)
# 创建一个handler,用于写入文件
self.log_time = time.strftime("%Y-%m-%d")
# 设置文件输出路径
"""根目录"""
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
"""文件路径"""
file_path = PROJECT_ROOT + os.sep + 'logs'
self.log_path = file_path
# 设置文件名称
self.log_name = self.log_path + "/" + self.log_time + '.logs'
# 文件内容格式
fh = logging.FileHandler(os.path.join(self.log_path,"log",self.log_name), "a", encoding="utf-8")
fh.setLevel(logging.DEBUG)
# 控制台
ch = logging.StreamHandler()
ch.setLevel(logging.DEBUG)
# 设置formatter(文件内容:时间,日志文件名称,操作,代码行数,日志级别,具体信息)
formatter = logging.Formatter(
'[%(asctime)s] %(filename)s->%(funcName)s line:%(lineno)d [%(levelname)s]%(message)s')
# 给logger添加handler
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 将这两个handler加入logger内
self.logger.addHandler(fh)
self.logger.addHandler(ch)
def getlog(self):
return self.logger
# log = Logger().logger
#
# if __name__ == '__main__':
# log.info('hello world')