"""
日志系统使用示例
"""
from logger import (
create_logger,
LogLevel,
LoggerCategory,
performance_logger,
security_logger,
default_logger
)
# 创建专用日志记录器
cache_logger = create_logger("cache_service", LogLevel.DEBUG)
template_logger = create_logger("template_service", LogLevel.INFO)
def example_usage():
"""日志系统使用示例"""
# 1. 基础日志记录
default_logger.info("系统启动完成")
default_logger.warning("检测到配置缺失,使用默认值")
default_logger.error("连接数据库失败", exception=ConnectionError("超时"))
# 2. 分类日志记录
cache_logger.debug(
"缓存命中",
category=LoggerCategory.CACHE,
cache_key="user:123",
hit=True
)
template_logger.info(
"模板加载完成",
category=LoggerCategory.TEMPLATE,
template_name="readme_basic",
load_time_ms=150
)
# 3. 性能监控
performance_logger.start_timer("file_processing")
# 模拟文件处理
import time
time.sleep(0.5)
performance_logger.end_timer("file_processing", {
"file_count": 10,
"total_size_mb": 25
})
# 4. 安全日志记录
security_logger.log_access_attempt(
user_id="user123",
resource="/admin/settings",
success=False
)
security_logger.log_permission_denied(
user_id="user456",
resource="/sensitive/data",
reason="insufficient_privileges"
)
# 5. 慢查询记录
performance_logger.log_slow_query(
query="SELECT * FROM large_table WHERE complex_condition",
duration=2.5,
threshold=1.0
)
def example_structured_logging():
"""结构化日志记录示例"""
# 带有结构化数据的日志
default_logger.info(
"用户操作完成",
category=LoggerCategory.USER_ACTION,
user_id="user123",
action="generate_document",
document_type="readme",
processing_time_ms=1250,
success=True,
metadata={
"template_used": "advanced_template",
"output_format": "markdown"
}
)
# 错误日志带有详细上下文
try:
# 模拟一个可能出错的操作
result = 1 / 0
except Exception as e:
default_logger.error(
"计算错误",
category=LoggerCategory.SYSTEM,
exception=e,
operation="division",
operands=[1, 0],
context="financial_calculation"
)
def example_performance_monitoring():
"""性能监控示例"""
# 嵌套操作计时
performance_logger.start_timer("document_generation")
# 第一步:读取模板
performance_logger.start_timer("template_loading")
time.sleep(0.1)
performance_logger.end_timer("template_loading", {"template_name": "readme"})
# 第二步:处理数据
performance_logger.start_timer("data_processing")
time.sleep(0.3)
performance_logger.end_timer("data_processing", {"record_count": 100})
# 第三步:生成文档
performance_logger.start_timer("document_rendering")
time.sleep(0.2)
performance_logger.end_timer("document_rendering", {"pages": 5})
performance_logger.end_timer("document_generation", {
"document_type": "readme",
"output_size_kb": 25
})
if __name__ == "__main__":
example_usage()
example_structured_logging()
example_performance_monitoring()