在Flutter中过滤日志可以通过以下几种方式:
1. 使用Flutter内置的日志过滤
在终端运行Flutter应用时,可以使用--verbose、--info、--warning、--error参数:
flutter run --verbose # 显示所有日志
flutter run --info # 显示info及以上级别
flutter run --warning # 显示warning及以上级别
flutter run --error # 只显示error级别
2. 使用logger包(推荐)
首先添加依赖:
dependencies:
logger: ^2.0.0
使用示例:
import 'package:logger/logger.dart';
var logger = Logger(
filter: DevelopmentFilter(), // 开发环境过滤器
printer: PrettyPrinter(
methodCount: 0, // 不显示方法调用数量
errorMethodCount: 8,
lineLength: 120,
colors: true,
printEmojis: true,
printTime: false,
),
output: ConsoleOutput(),
);
// 使用不同级别
logger.v("Verbose log");
logger.d("Debug log");
logger.i("Info log");
logger.w("Warning log");
logger.e("Error log", error: 'Test Error');
3. 自定义过滤器
class CustomLogFilter extends LogFilter {
@override
bool shouldLog(LogEvent event) {
// 只显示warning及以上级别的日志
return event.level.index >= Level.warning.index;
// 或者根据内容过滤
// return !event.message.contains('sensitive');
}
}
var logger = Logger(filter: CustomLogFilter());
4. 在release模式禁用调试日志
void debugLog(String message) {
assert(() {
print('DEBUG: $message');
return true;
}());
}
这些方法可以帮助你有效管理和过滤Flutter应用中的日志输出。