添加项目源代码
This commit is contained in:
67
logger.py
Normal file
67
logger.py
Normal file
@@ -0,0 +1,67 @@
|
||||
import os
|
||||
import logging
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
class Logger:
|
||||
"""统一的日志管理类"""
|
||||
|
||||
_instance = None
|
||||
_initialized = False
|
||||
|
||||
def __new__(cls):
|
||||
if cls._instance is None:
|
||||
cls._instance = super().__new__(cls)
|
||||
return cls._instance
|
||||
|
||||
def __init__(self):
|
||||
if not self._initialized:
|
||||
# 创建日志目录
|
||||
self.log_dir = os.path.join(os.getenv('APPDATA'), 'Cursor', 'logs')
|
||||
os.makedirs(self.log_dir, exist_ok=True)
|
||||
|
||||
# 配置根日志记录器
|
||||
self.logger = logging.getLogger('CursorTools')
|
||||
self.logger.setLevel(logging.INFO)
|
||||
|
||||
# 日志格式
|
||||
self.formatter = logging.Formatter(
|
||||
'%(asctime)s - %(name)s - %(levelname)s - %(message)s'
|
||||
)
|
||||
|
||||
# 添加处理器
|
||||
self._add_handlers()
|
||||
|
||||
self._initialized = True
|
||||
|
||||
def _add_handlers(self):
|
||||
"""添加日志处理器"""
|
||||
if not self.logger.handlers:
|
||||
# 文件处理器
|
||||
log_file = os.path.join(
|
||||
self.log_dir,
|
||||
f'cursor_tools_{datetime.now().strftime("%Y%m%d")}.log'
|
||||
)
|
||||
fh = logging.FileHandler(log_file, encoding='utf-8')
|
||||
fh.setLevel(logging.INFO)
|
||||
fh.setFormatter(self.formatter)
|
||||
self.logger.addHandler(fh)
|
||||
|
||||
# 控制台处理器
|
||||
ch = logging.StreamHandler()
|
||||
ch.setLevel(logging.INFO)
|
||||
ch.setFormatter(self.formatter)
|
||||
self.logger.addHandler(ch)
|
||||
|
||||
def get_logger(self, name: Optional[str] = None) -> logging.Logger:
|
||||
"""
|
||||
获取日志记录器
|
||||
:param name: 日志记录器名称
|
||||
:return: 日志记录器实例
|
||||
"""
|
||||
if name:
|
||||
return self.logger.getChild(name)
|
||||
return self.logger
|
||||
|
||||
# 创建全局日志管理器实例
|
||||
logger = Logger()
|
||||
Reference in New Issue
Block a user