logger.dart 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import 'package:logger/logger.dart' as logger_package;
  2. /// 日志工具类
  3. class AppLogger {
  4. static logger_package.Logger? _logger;
  5. /// 初始化日志(可选配置)
  6. static void init({
  7. logger_package.Level level = logger_package.Level.debug,
  8. bool enableFileOutput = false,
  9. }) {
  10. _logger = logger_package.Logger(
  11. level: level,
  12. printer: logger_package.PrettyPrinter(
  13. methodCount: 2,
  14. errorMethodCount: 8,
  15. lineLength: 120,
  16. colors: true,
  17. printEmojis: true,
  18. printTime: true,
  19. ),
  20. );
  21. }
  22. static logger_package.Logger get _instance {
  23. _logger ??= logger_package.Logger(
  24. printer: logger_package.PrettyPrinter(
  25. methodCount: 2,
  26. errorMethodCount: 8,
  27. lineLength: 120,
  28. colors: true,
  29. printEmojis: true,
  30. printTime: true,
  31. ),
  32. );
  33. return _logger!;
  34. }
  35. // ==================== 日志级别 ====================
  36. /// Debug 日志
  37. static void d(dynamic message, [dynamic error, StackTrace? stackTrace]) {
  38. _instance.d(message, error: error, stackTrace: stackTrace);
  39. }
  40. /// Info 日志
  41. static void i(dynamic message, [dynamic error, StackTrace? stackTrace]) {
  42. _instance.i(message, error: error, stackTrace: stackTrace);
  43. }
  44. /// Warning 日志
  45. static void w(dynamic message, [dynamic error, StackTrace? stackTrace]) {
  46. _instance.w(message, error: error, stackTrace: stackTrace);
  47. }
  48. /// Error 日志
  49. static void e(dynamic message, [dynamic error, StackTrace? stackTrace]) {
  50. _instance.e(message, error: error, stackTrace: stackTrace);
  51. }
  52. /// Fatal 日志
  53. static void f(dynamic message, [dynamic error, StackTrace? stackTrace]) {
  54. _instance.f(message, error: error, stackTrace: stackTrace);
  55. }
  56. // ==================== 便捷方法 ====================
  57. /// 记录 API 请求
  58. static void logRequest(String method, String url, {Map<String, dynamic>? headers, dynamic body}) {
  59. d('📤 Request: $method $url');
  60. if (headers != null) d('Headers: $headers');
  61. if (body != null) d('Body: $body');
  62. }
  63. /// 记录 API 响应
  64. static void logResponse(int statusCode, String url, {dynamic data}) {
  65. d('📥 Response: $statusCode $url');
  66. if (data != null) d('Data: $data');
  67. }
  68. /// 记录错误
  69. static void logError(String message, {dynamic error, StackTrace? stackTrace}) {
  70. e('❌ Error: $message', error, stackTrace);
  71. }
  72. /// 记录用户操作
  73. static void logUserAction(String action, {Map<String, dynamic>? params}) {
  74. i('👤 User Action: $action');
  75. if (params != null) i('Params: $params');
  76. }
  77. }