""" 日志使用示例 演示如何在应用中使用日志模块 """ 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()