Refactor logging system to use unified log_utils module and enhance logging messages across multiple scripts

This commit is contained in:
Misaka_Company
2026-01-12 13:55:28 +08:00
parent 83c90f0161
commit 4721634b81
7 changed files with 227 additions and 246 deletions

View File

@@ -4,91 +4,11 @@ import sys
import pyodbc
from config import SQL_SERVER_CONN, ACCESS_DRIVER, SYNC_MAPPING, POLL_INTERVAL, LOG_TABLE_CONFIG
import db_utils
import logging
from logging.handlers import TimedRotatingFileHandler
import ntfy_utils
from log_utils import (LoggerManager, log_success, log_error, log_warning, log_info, log_processing,
log_skip, log_critical, log_start, log_stop, log_file, log_database, log_sync)
# ================= 日志系统配置 =================
def setup_logger():
log_dir = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'log')
if not os.path.exists(log_dir):
os.makedirs(log_dir)
logger = logging.getLogger("SyncService")
logger.setLevel(logging.INFO)
logger.handlers = []
log_file_path = os.path.join(log_dir, 'sync_service.log')
file_handler = TimedRotatingFileHandler(
log_file_path, when='midnight', interval=1, backupCount=30, encoding='utf-8'
)
file_handler.suffix = "%Y-%m-%d"
file_fmt = logging.Formatter('%(asctime)s - [%(levelname)s] - %(message)s')
file_handler.setFormatter(file_fmt)
console_handler = logging.StreamHandler(sys.stdout)
console_fmt = logging.Formatter('%(asctime)s - %(message)s', datefmt='%H:%M:%S')
console_handler.setFormatter(console_fmt)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
return logger
logger = setup_logger()
# ================= 日志辅助函数 =================
def log_success(message):
"""成功消息 - 绿色感觉"""
logger.info(f"✅ [成功] {message}")
def log_error(message):
"""错误消息 - 红色感觉"""
logger.error(f"❌ [错误] {message}")
ntfy_utils.send_error(f"❌ [错误] {message}")
def log_warning(message):
"""警告消息 - 黄色感觉"""
logger.warning(f"⚠️ [警告] {message}")
ntfy_utils.send_error(f"⚠️ [警告] {message}")
def log_info(message):
"""信息消息"""
logger.info(f" {message}")
def log_processing(message):
"""处理中消息"""
logger.info(f"🔄 [处理] {message}")
def log_skip(message):
"""跳过消息"""
logger.info(f"⏭️ [跳过] {message}")
def log_critical(message):
"""严重错误"""
logger.critical(f"🔥 [严重] {message}")
ntfy_utils.send_critical(f"🔥 [严重] {message}")
def log_start(message):
"""启动消息"""
logger.info(f"🚀 [启动] {message}")
ntfy_utils.send_ntfy(f"🚀 [启动] {message}")
def log_stop(message):
"""停止消息"""
logger.info(f"🛑 [停止] {message}")
ntfy_utils.send_ntfy(f"🛑 [停止] {message}")
def log_file(message):
"""文件操作消息"""
logger.info(f"📂 [文件] {message}")
def log_database(message):
"""数据库操作消息"""
logger.info(f"💾 [数据库] {message}")
def log_sync(message):
"""同步操作消息"""
logger.info(f"🔃 [同步] {message}")
# 初始化日志管理器
LoggerManager("run_incremental_sync", log_prefix="incremental")
# ================= 主逻辑 =================
@@ -267,7 +187,7 @@ if __name__ == "__main__":
log_start("增量同步服务已启动 (配置驱动模式)")
log_info(f"轮询间隔: {POLL_INTERVAL}")
log_info(f"监控配置: {len(SYNC_MAPPING)} 个文件")
logger.info("=" * 70)
log_info("=" * 70)
while True:
try:
@@ -276,7 +196,7 @@ if __name__ == "__main__":
# 如果没工作,休息标准间隔(5s)
time.sleep(0.1 if has_work else POLL_INTERVAL)
except KeyboardInterrupt:
logger.info("=" * 70)
log_info("=" * 70)
log_stop("收到停止信号,服务正在关闭...")
break
except Exception as e: