微信小程序页面迁移校验之前 P5任务处理之前

This commit is contained in:
Neo
2026-03-09 01:19:21 +08:00
parent 263bf96035
commit 6e20987d2f
1112 changed files with 153824 additions and 219694 deletions

View File

@@ -0,0 +1,94 @@
#!/usr/bin/env python3
"""
检查最新的 ETL 日志文件,查找 DWD 任务执行情况和错误信息
"""
import os
import glob
from pathlib import Path
from datetime import datetime
from dotenv import load_dotenv
def main():
# 加载环境变量
load_dotenv()
log_root = os.environ.get('LOG_ROOT')
if not log_root:
raise RuntimeError("LOG_ROOT 环境变量未设置")
log_dir = Path(log_root)
print(f"查找日志目录: {log_dir}")
if not log_dir.exists():
print(f"日志目录不存在: {log_dir}")
return
# 获取所有日志文件并按修改时间排序
log_files = list(log_dir.glob("*.log"))
if not log_files:
print("未找到日志文件")
return
# 按修改时间排序,最新的在前
log_files.sort(key=lambda x: x.stat().st_mtime, reverse=True)
print(f"找到 {len(log_files)} 个日志文件")
print(f"最新日志文件: {log_files[0].name}")
print(f"修改时间: {datetime.fromtimestamp(log_files[0].stat().st_mtime)}")
# 读取最新日志文件
latest_log = log_files[0]
print(f"\n=== 检查最新日志: {latest_log.name} ===")
with open(latest_log, 'r', encoding='utf-8') as f:
content = f.read()
# 查找关键信息
lines = content.split('\n')
# 查找 DWD 相关信息
dwd_lines = [line for line in lines if 'DWD' in line]
if dwd_lines:
print(f"\n🔍 DWD 相关日志 ({len(dwd_lines)} 条):")
for line in dwd_lines[-10:]: # 显示最后10条
print(f" {line}")
# 查找错误信息
error_lines = [line for line in lines if any(keyword in line.upper() for keyword in ['ERROR', 'EXCEPTION', 'FAILED', 'TRACEBACK'])]
if error_lines:
print(f"\n❌ 错误信息 ({len(error_lines)} 条):")
for line in error_lines[-5:]: # 显示最后5条错误
print(f" {line}")
# 查找成功信息
success_lines = [line for line in lines if any(keyword in line.upper() for keyword in ['SUCCESS', 'COMPLETED', 'FINISHED'])]
if success_lines:
print(f"\n✅ 成功信息 ({len(success_lines)} 条):")
for line in success_lines[-5:]: # 显示最后5条成功
print(f" {line}")
# 查找数据处理统计
stats_lines = [line for line in lines if any(keyword in line for keyword in ['rows', 'records', 'processed', 'inserted', 'updated'])]
if stats_lines:
print(f"\n📊 数据处理统计 ({len(stats_lines)} 条):")
for line in stats_lines[-5:]: # 显示最后5条统计
print(f" {line}")
# 显示日志文件大小和行数
file_size = latest_log.stat().st_size
line_count = len(lines)
print(f"\n📋 日志文件信息:")
print(f" 文件大小: {file_size:,} 字节")
print(f" 总行数: {line_count:,}")
# 如果日志很大,显示最后几行
if line_count > 50:
print(f"\n📝 最后 10 行:")
for line in lines[-10:]:
if line.strip():
print(f" {line}")
if __name__ == "__main__":
main()