log_example.py 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. """
  2. 日志使用示例
  3. 演示如何在应用中使用日志模块
  4. """
  5. from app.utils.logger import Logger, log_request_info, log_function_call, ErrorHandler
  6. class LogExample:
  7. """日志使用示例类"""
  8. @log_request_info
  9. def api_example(self):
  10. """API示例 - 自动记录请求信息"""
  11. Logger.info("处理API请求")
  12. try:
  13. # 模拟一些业务逻辑
  14. result = self.business_logic()
  15. Logger.info("API处理成功", {'result_count': len(result)})
  16. return result
  17. except Exception as e:
  18. Logger.error("API处理失败", e, {'endpoint': 'api_example'})
  19. raise
  20. @log_function_call("业务逻辑处理")
  21. def business_logic(self):
  22. """业务逻辑示例"""
  23. Logger.info("开始执行业务逻辑")
  24. # 模拟一些操作
  25. data = {'user_id': 123, 'action': 'create_task'}
  26. Logger.info("业务逻辑执行中", data)
  27. # 模拟可能的错误
  28. if False: # 这里可以改为True来测试错误处理
  29. raise ValueError("模拟的业务逻辑错误")
  30. Logger.info("业务逻辑执行完成")
  31. return [1, 2, 3, 4, 5]
  32. def error_handling_example(self):
  33. """错误处理示例"""
  34. try:
  35. # 模拟数据库操作
  36. self.database_operation()
  37. except Exception as e:
  38. ErrorHandler.handle_database_error(e, "查询用户信息")
  39. try:
  40. # 模拟API调用
  41. self.api_call()
  42. except Exception as e:
  43. ErrorHandler.handle_api_error(e, "/api/v1/users", {'user_id': 123})
  44. try:
  45. # 模拟一般异常
  46. raise RuntimeError("这是一个测试异常")
  47. except Exception as e:
  48. ErrorHandler.handle_exception(e, "错误处理示例")
  49. def database_operation(self):
  50. """模拟数据库操作"""
  51. raise ConnectionError("数据库连接失败")
  52. def api_call(self):
  53. """模拟API调用"""
  54. raise TimeoutError("API调用超时")
  55. def access_log_example(self):
  56. """访问日志示例"""
  57. Logger.access_log("用户登录", {
  58. 'user_id': 123,
  59. 'login_method': 'password',
  60. 'ip_address': '192.168.1.100'
  61. })
  62. Logger.access_log("用户操作", {
  63. 'user_id': 123,
  64. 'action': 'create_task',
  65. 'resource_id': 456
  66. })
  67. # 使用示例
  68. def demo_logging():
  69. """演示日志功能"""
  70. example = LogExample()
  71. print("=== 日志功能演示 ===")
  72. # 基本日志记录
  73. Logger.info("应用启动", {'version': '1.0.0'})
  74. Logger.warning("这是一个警告信息", {'warning_type': 'deprecated_api'})
  75. Logger.error("这是一个错误信息", None, {'error_code': 'E001'})
  76. # 全局错误日志
  77. Logger.global_error("全局错误测试", None, {'severity': 'high'})
  78. # 访问日志
  79. Logger.access_log("页面访问", {'page': '/dashboard'})
  80. # 函数调用日志
  81. example.business_logic()
  82. # 错误处理示例
  83. example.error_handling_example()
  84. print("=== 日志演示完成 ===")
  85. if __name__ == "__main__":
  86. demo_logging()