Archived
重写logger
This commit is contained in:
2 files changed
+54
-51
No files matched your search
+25
-19
@@ -8,17 +8,22 @@
|
||||
|
||||
import time
|
||||
import logging.handlers
|
||||
from logging import Logger
|
||||
from colorlog import ColoredFormatter
|
||||
|
||||
|
||||
class Logger:
|
||||
class MakeLogger:
|
||||
def __init__(self):
|
||||
self.date_format = '%H:%M:%S'
|
||||
self.info_format_console = '%(log_color)s[%(asctime)s] |%(filename)s[%(lineno)-3s] |%(levelname)-8s |%(message)s'
|
||||
self.info_format_file = '[%(asctime)s] |%(filename)s[%(funcName)sline:%(lineno)d] |%(levelname)-8s |%(message)s'
|
||||
self.format_console = '%(log_color)s[%(asctime)s] |%(filename)s[%(lineno)-3s] |%(levelname)-8s |%(message)s'
|
||||
self.format_file = '[%(asctime)s] |%(filename)s[%(funcName)sline:%(lineno)d] |%(levelname)-8s |%(message)s'
|
||||
|
||||
def set_logger(self):
|
||||
formatter = ColoredFormatter(fmt=self.info_format_console,
|
||||
def setup_logger(self) -> Logger:
|
||||
"""
|
||||
建立日志器
|
||||
:return:
|
||||
"""
|
||||
formatter = ColoredFormatter(fmt=self.format_console,
|
||||
datefmt=self.date_format,
|
||||
reset=True,
|
||||
log_colors={
|
||||
@@ -26,24 +31,25 @@ class Logger:
|
||||
'INFO': 'light_cyan',
|
||||
'WARNING': 'yellow',
|
||||
'ERROR': 'red',
|
||||
'CRITICAL': 'red,bold_red'})
|
||||
formatter_file = logging.Formatter(fmt=self.info_format_file,
|
||||
datefmt=self.date_format)
|
||||
'CRITICAL': 'red,bold_red'}) # 定义终端输出颜色
|
||||
formatter_file = logging.Formatter(fmt=self.format_file,
|
||||
datefmt=self.date_format) # 文件输入不使用颜色
|
||||
|
||||
_logger = logging.getLogger('MainLogger')
|
||||
_logger.setLevel(logging.DEBUG)
|
||||
_logger = logging.getLogger('RequestCounter') # 设置日志器名称
|
||||
_logger.setLevel(logging.DEBUG) # 设置等级
|
||||
|
||||
ConsoleLogger = logging.StreamHandler() # 输出到终端
|
||||
ConsoleLogger.setFormatter(formatter)
|
||||
console_logger = logging.StreamHandler() # 输出到终端
|
||||
console_logger.setFormatter(formatter) # 设置输出格式化
|
||||
log_name = time.strftime('%Y-%m-%d %H') # 一小时内使用的日志文件都是同一个
|
||||
FileLogger = logging.handlers.RotatingFileHandler(filename=f'./bin/log/{log_name}.log',
|
||||
maxBytes=102400,
|
||||
backupCount=5) # 每个日志文件最大102400字节(100Kb)
|
||||
FileLogger.setFormatter(formatter_file)
|
||||
_logger.addHandler(ConsoleLogger)
|
||||
_logger.addHandler(FileLogger)
|
||||
file_logger = logging.handlers.RotatingFileHandler(filename=f'./bin/log/{log_name}.log',
|
||||
maxBytes=102400,
|
||||
backupCount=5,
|
||||
encoding='utf-8') # 每个日志文件最大102400字节(100Kb)
|
||||
file_logger.setFormatter(formatter_file)
|
||||
_logger.addHandler(console_logger)
|
||||
_logger.addHandler(file_logger)
|
||||
return _logger
|
||||
|
||||
|
||||
if __name__ != '__main__':
|
||||
logger = Logger().set_logger()
|
||||
logger = MakeLogger().setup_logger()
|
||||
Reference in New Issue
Block a user