You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

61 lines
1.7 KiB

#!/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())