flutter如何打印日志
在Flutter开发中,如何正确打印日志信息?我尝试用print()函数,但发现在Release模式下会被自动移除。有没有更可靠的日志输出方式?比如像Android的Log类或iOS的NSLog那样的专用日志工具?最好能支持不同日志级别(debug/info/warning/error)和日志过滤功能。
2 回复
在Flutter中,使用print()函数即可打印日志。例如:
print('这是日志信息');
日志会在控制台或调试终端显示。
更多关于flutter如何打印日志的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中,可以通过以下几种方式打印日志:
1. 使用 print() 函数(最简单)
print('这是一条普通日志');
2. 使用 logger 包(推荐)
首先添加依赖:
dependencies:
logger: ^1.1.0
使用示例:
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 日志');
// 自定义格式
var logger = Logger(
printer: PrettyPrinter(
methodCount: 0, // 不显示方法调用堆栈
errorMethodCount: 8, // 错误时显示8层堆栈
lineLength: 120,
colors: true,
printEmojis: true,
printTime: false,
),
);
3. 开发环境专用日志
void debugPrint(String message) {
assert(() {
print('🐛 DEBUG: $message');
return true;
}());
}
// 使用
debugPrint('这条日志只在开发环境显示');
4. 条件编译日志
class AppLogger {
static void log(String message) {
// 只在调试模式打印
if (kDebugMode) {
print('🔄 $message');
}
}
static void error(String message, [dynamic error]) {
if (kDebugMode) {
print('❌ ERROR: $message ${error ?? ''}');
}
}
}
// 使用
AppLogger.log('应用启动');
AppLogger.error('网络请求失败', e.toString());
推荐做法:
- 开发阶段:使用 logger 包,便于查看不同级别的日志
- 生产环境:使用条件编译,避免不必要的日志输出
- 重要信息:使用 debugPrint 确保在 release 模式不输出
logger 包提供了更好的格式化和过滤功能,是 Flutter 开发中最常用的日志工具。

