在Flutter中,可以通过以下几种方式记录和输出日志:
1. 使用内置的print函数
最简单的方式,适用于开发和调试阶段:
print('这是一条普通日志');
2. 使用debugPrint
比print更优的选择,在大量输出时不会丢失日志:
import 'package:flutter/foundation.dart';
debugPrint('这是一条调试日志');
3. 使用logger包(推荐)
安装依赖:flutter pub add logger
import 'package:logger/logger.dart';
var logger = Logger();
// 不同级别的日志
logger.v('Verbose日志');
logger.d('Debug日志');
logger.i('Info日志');
logger.w('Warning日志');
logger.e('Error日志', error: '错误信息');
logger.wtf('What a terrible failure');
// 带堆栈跟踪
logger.e('错误发生', error: e, stackTrace: s);
4. 自定义日志工具类
class LogUtil {
  static const bool _debug = !kReleaseMode;
  
  static void d(String message) {
    if (_debug) {
      debugPrint('${DateTime.now()} - $message');
    }
  }
  
  static void e(String message, {Object? error}) {
    debugPrint('❌ ERROR: $message ${error ?? ''}');
  }
}
// 使用
LogUtil.d('自定义日志');
LogUtil.e('错误信息', error: exception);
5. 生产环境配置
建议在发布版本中禁用调试日志:
// 在main.dart中
if (kReleaseMode) {
  // 生产环境:禁用控制台日志
  debugPrint = (String? message, {int? wrapWidth}) {};
}
最佳实践:
- 开发阶段使用logger包,支持不同级别和格式化
- 生产环境过滤敏感信息,只记录必要的错误日志
- 使用条件编译控制日志输出,避免影响性能