- 移除 defaultenv 文件和未使用的模板文件 - 重构 main.py,添加新的 Docker Compose 配置解析逻辑 - 新增 Nginx 配置生成和安全重启功能 - 更新 requirements.txt,替换 jinja2 为 pyyaml - 删除未使用的 src/config_reader.py 和 src/jinja2_render.py 文件
35 lines
964 B
Python
35 lines
964 B
Python
"""
|
|
统一日志工具
|
|
"""
|
|
import logging
|
|
|
|
class ColorFormatter(logging.Formatter):
|
|
"""
|
|
using terminal color to print colorful log
|
|
"""
|
|
COLORS = {
|
|
'WARNING': '\033[93m',
|
|
'ERROR': '\033[91m',
|
|
'CRITICAL': '\033[91m',
|
|
'INFO': '\033[94m',
|
|
'DEBUG': '\033[92m',
|
|
'ENDC': '\033[0m'
|
|
}
|
|
|
|
def format(self, record):
|
|
color = self.COLORS.get(record.levelname, '')
|
|
message = super().format(record)
|
|
return f"{color}{message}{self.COLORS['ENDC']}" if color else message
|
|
|
|
def get_logger(name: str | None = None):
|
|
"""
|
|
using ColorFormatter to print colorful log
|
|
"""
|
|
logger = logging.getLogger(name)
|
|
logger.setLevel(logging.INFO)
|
|
handler = logging.StreamHandler()
|
|
handler.setFormatter(ColorFormatter('[%(asctime)s] %(levelname)s: %(message)s',
|
|
datefmt='%Y-%m-%d %H:%M:%S'))
|
|
logger.addHandler(handler)
|
|
return logger
|