updata updatekline.py
This commit is contained in:
@@ -1,47 +1,9 @@
|
||||
# import logging
|
||||
# import sys
|
||||
|
||||
# class LogHelper:
|
||||
# def __init__(self,
|
||||
# level=logging.INFO,
|
||||
# format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
# handlers=None):
|
||||
# """
|
||||
# 初始化日志配置
|
||||
|
||||
# :param level: 日志级别,默认为 logging.INFO
|
||||
# :param format: 日志格式字符串
|
||||
# :param handlers: 日志处理器列表,默认为空(会自动添加控制台处理器)
|
||||
# """
|
||||
# self.level = level
|
||||
# self.format = format
|
||||
# self.handlers = handlers if handlers is not None else []
|
||||
|
||||
# def add_console_handler(self, stream=sys.stdout, encoding='utf-8'):
|
||||
# """添加控制台处理器"""
|
||||
# console_handler = logging.StreamHandler(stream)
|
||||
# console_handler.setFormatter(logging.Formatter(self.format))
|
||||
# # 设置控制台编码
|
||||
# if encoding:
|
||||
# console_handler.encoding = encoding
|
||||
# self.handlers.append(console_handler)
|
||||
|
||||
# def add_file_handler(self, filename, encoding='utf-8'):
|
||||
# """添加文件处理器(解决中文乱码问题)"""
|
||||
# # 使用支持UTF-8编码的文件处理器
|
||||
# filepath = "log/" + filename
|
||||
# file_handler = logging.FileHandler(filepath, encoding=encoding)
|
||||
# file_handler.setFormatter(logging.Formatter(self.format))
|
||||
# self.handlers.append(file_handler)
|
||||
|
||||
# def setup(self):
|
||||
# """应用日志配置"""
|
||||
# logging.basicConfig(
|
||||
# level=self.level,
|
||||
# format=self.format,
|
||||
# handlers=self.handlers
|
||||
# )
|
||||
"""
|
||||
日志管理类
|
||||
|
||||
日志输出到运行目录指定文件夹
|
||||
日志文件按照:YYYY-MM-dd.log 格式输出
|
||||
"""
|
||||
|
||||
import logging
|
||||
import sys
|
||||
@@ -49,11 +11,21 @@ import os
|
||||
from datetime import datetime
|
||||
|
||||
class LogHelper:
|
||||
# 内部日志级别映射表
|
||||
_LEVEL_MAP = {
|
||||
'DEBUG': 10,
|
||||
'INFO': 20,
|
||||
'WARNING': 30,
|
||||
'ERROR': 40,
|
||||
'CRITICAL': 50
|
||||
}
|
||||
|
||||
def __init__(self,
|
||||
level=logging.INFO,
|
||||
level='INFO',
|
||||
format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
|
||||
handlers=None,
|
||||
log_dir="logs"):
|
||||
log_dir="logs",
|
||||
logger_name=None):
|
||||
"""
|
||||
初始化日志配置
|
||||
|
||||
@@ -62,10 +34,11 @@ class LogHelper:
|
||||
:param handlers: 日志处理器列表,默认为空(会自动添加控制台处理器)
|
||||
:param log_dir: 日志存储目录,默认为"logs"
|
||||
"""
|
||||
self.level = level
|
||||
self.level = self._LEVEL_MAP.get(level.upper(), 20) # 默认INFO
|
||||
self.format = format
|
||||
self.handlers = handlers if handlers is not None else []
|
||||
self.log_dir = log_dir
|
||||
self.logger_name = logger_name
|
||||
# 确保日志目录存在
|
||||
os.makedirs(self.log_dir, exist_ok=True)
|
||||
|
||||
@@ -76,6 +49,7 @@ class LogHelper:
|
||||
if encoding:
|
||||
console_handler.encoding = encoding
|
||||
self.handlers.append(console_handler)
|
||||
return self # 支持链式调用
|
||||
|
||||
def _get_daily_log_path(self):
|
||||
"""生成基于当前日期的日志文件路径"""
|
||||
@@ -89,6 +63,7 @@ class LogHelper:
|
||||
file_handler = logging.FileHandler(log_path, encoding=encoding)
|
||||
file_handler.setFormatter(logging.Formatter(self.format))
|
||||
self.handlers.append(file_handler)
|
||||
return self # 支持链式调用
|
||||
|
||||
def setup(self):
|
||||
"""应用日志配置(自动添加日期文件处理器)"""
|
||||
@@ -97,9 +72,19 @@ class LogHelper:
|
||||
self.add_console_handler()
|
||||
self._add_daily_file_handler()
|
||||
|
||||
# 应用配置
|
||||
logging.basicConfig(
|
||||
level=self.level,
|
||||
format=self.format,
|
||||
handlers=self.handlers
|
||||
)
|
||||
# 获取或创建logger
|
||||
logger = logging.getLogger(self.logger_name)
|
||||
logger.setLevel(self.level)
|
||||
|
||||
# 移除所有现有处理器(避免重复添加)
|
||||
for handler in logger.handlers[:]:
|
||||
logger.removeHandler(handler)
|
||||
|
||||
# 添加配置的处理器
|
||||
for handler in self.handlers:
|
||||
logger.addHandler(handler)
|
||||
|
||||
# 确保日志消息不会传递给父logger(避免重复记录)
|
||||
logger.propagate = False
|
||||
|
||||
return logger
|
||||
Reference in New Issue
Block a user