| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- """
- 日志使用示例
- 演示如何在应用中使用日志模块
- """
- from app.utils.logger import Logger, log_request_info, log_function_call, ErrorHandler
- class LogExample:
- """日志使用示例类"""
-
- @log_request_info
- def api_example(self):
- """API示例 - 自动记录请求信息"""
- Logger.info("处理API请求")
-
- try:
- # 模拟一些业务逻辑
- result = self.business_logic()
- Logger.info("API处理成功", {'result_count': len(result)})
- return result
- except Exception as e:
- Logger.error("API处理失败", e, {'endpoint': 'api_example'})
- raise
-
- @log_function_call("业务逻辑处理")
- def business_logic(self):
- """业务逻辑示例"""
- Logger.info("开始执行业务逻辑")
-
- # 模拟一些操作
- data = {'user_id': 123, 'action': 'create_task'}
- Logger.info("业务逻辑执行中", data)
-
- # 模拟可能的错误
- if False: # 这里可以改为True来测试错误处理
- raise ValueError("模拟的业务逻辑错误")
-
- Logger.info("业务逻辑执行完成")
- return [1, 2, 3, 4, 5]
-
- def error_handling_example(self):
- """错误处理示例"""
- try:
- # 模拟数据库操作
- self.database_operation()
- except Exception as e:
- ErrorHandler.handle_database_error(e, "查询用户信息")
-
- try:
- # 模拟API调用
- self.api_call()
- except Exception as e:
- ErrorHandler.handle_api_error(e, "/api/v1/users", {'user_id': 123})
-
- try:
- # 模拟一般异常
- raise RuntimeError("这是一个测试异常")
- except Exception as e:
- ErrorHandler.handle_exception(e, "错误处理示例")
-
- def database_operation(self):
- """模拟数据库操作"""
- raise ConnectionError("数据库连接失败")
-
- def api_call(self):
- """模拟API调用"""
- raise TimeoutError("API调用超时")
-
- def access_log_example(self):
- """访问日志示例"""
- Logger.access_log("用户登录", {
- 'user_id': 123,
- 'login_method': 'password',
- 'ip_address': '192.168.1.100'
- })
-
- Logger.access_log("用户操作", {
- 'user_id': 123,
- 'action': 'create_task',
- 'resource_id': 456
- })
- # 使用示例
- def demo_logging():
- """演示日志功能"""
- example = LogExample()
-
- print("=== 日志功能演示 ===")
-
- # 基本日志记录
- Logger.info("应用启动", {'version': '1.0.0'})
- Logger.warning("这是一个警告信息", {'warning_type': 'deprecated_api'})
- Logger.error("这是一个错误信息", None, {'error_code': 'E001'})
-
- # 全局错误日志
- Logger.global_error("全局错误测试", None, {'severity': 'high'})
-
- # 访问日志
- Logger.access_log("页面访问", {'page': '/dashboard'})
-
- # 函数调用日志
- example.business_logic()
-
- # 错误处理示例
- example.error_handling_example()
-
- print("=== 日志演示完成 ===")
- if __name__ == "__main__":
- demo_logging()
|