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
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())
|
|
|