VMiddleware/utils/LogT.py

47 lines
1.5 KiB
Python

import logging
from logging.handlers import RotatingFileHandler
import os
import sys
class Log(object):
def __init__(self, log_path="./logs", stdout_log_level=logging.DEBUG, fil_log_level=logging.WARN, log_name: str = "V"):
# self.log_level = stdout_log_level
self.logger = logging.getLogger(log_name)
self.logger.setLevel(stdout_log_level)
self.logPath = log_path
if not os.path.exists(self.logPath):
os.mkdir(self.logPath)
# 创建处理器
self.stdoutHandler = logging.StreamHandler(stream=sys.stdout)
self.fileHandler = RotatingFileHandler(filename="%s/log.log" % self.logPath,
mode="a",
maxBytes=10485760,
backupCount=10,
encoding="utf-8")
# 设置日志级别
self.stdoutHandler.setLevel(stdout_log_level)
self.fileHandler.setLevel(fil_log_level)
self.fmt = logging.Formatter(
"%(name)s: %(asctime)s | %(levelname)s | %(filename)s:%(lineno)s | %(process)d >>> %(message)s"
)
# 设置日志格式
self.stdoutHandler.setFormatter(self.fmt)
self.fileHandler.setFormatter(self.fmt)
# 设置日志处理器
self.logger.addHandler(self.stdoutHandler)
self.logger.addHandler(self.fileHandler)
def getLogger(self):
return self.logger