#!/usr/bin/env python3 """ 测试美化JSON日志格式 """ import asyncio import logging from app.utils.structured_log import ( get_structured_logger, LogLevel, set_default_indent, set_request_context, clear_log_context ) async def test_pretty_json_log(): """测试美化JSON日志格式""" print("=== 测试美化JSON日志格式 ===\n") # 清除之前的日志记录器缓存 logging.getLogger().handlers.clear() # 设置请求上下文 set_request_context("test-req-123", "user-456", "session-789") # 测试1: 默认2空格缩进 print("1. 默认2空格缩进:") print("-" * 50) logger1 = get_structured_logger("test.pretty1", LogLevel.DEBUG, indent=2) logger1.info("这是一条信息日志") logger1.warning("这是一条警告日志", extra_data="测试数据") logger1.error("这是一条错误日志", error_code="E001") print("\n" + "="*60 + "\n") # 测试2: 4空格缩进 print("2. 4空格缩进:") print("-" * 50) logger2 = get_structured_logger("test.pretty2", LogLevel.DEBUG, indent=4) logger2.info("这是一条信息日志") logger2.warning("这是一条警告日志", extra_data="测试数据") logger2.error("这是一条错误日志", error_code="E001") print("\n" + "="*60 + "\n") # 测试3: 异常日志 print("3. 异常日志测试:") print("-" * 50) try: raise ValueError("这是一个测试异常") except Exception as e: logger1.exception("捕获到异常", error_type="ValueError") print("\n=== 测试完成 ===") # 清理 clear_log_context() if __name__ == "__main__": asyncio.run(test_pretty_json_log())