Refactor logging system to use unified log_utils module and enhance logging messages across multiple scripts
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user