在Flutter中实现彩色日志,可以通过以下几种方式:
1. 使用第三方库(推荐)
logger 库
dependencies:
logger: ^2.0.0+1
import 'package:logger/logger.dart';
void main() {
var logger = Logger();
logger.v("Verbose log"); // 灰色
logger.d("Debug log"); // 蓝色
logger.i("Info log"); // 绿色
logger.w("Warning log"); // 橙色
logger.e("Error log"); // 红色
logger.wtf("WTF log"); // 品红色
}
自定义配置
final logger = Logger(
printer: PrettyPrinter(
methodCount: 0, // 方法调用堆栈数量
errorMethodCount: 8, // 错误时的方法调用堆栈数量
lineLength: 120, // 每行最大长度
colors: true, // 启用颜色
printEmojis: true, // 打印表情符号
printTime: false, // 是否打印时间
),
);
2. 使用 ANSI 颜色代码
class ColorLogger {
static const reset = '\x1B[0m';
static const black = '\x1B[30m';
static const red = '\x1B[31m';
static const green = '\x1B[32m';
static const yellow = '\x1B[33m';
static const blue = '\x1B[34m';
static const magenta = '\x1B[35m';
static const cyan = '\x1B[36m';
static const white = '\x1B[37m';
static void info(String message) {
print('$green[INFO]$reset $message');
}
static void error(String message) {
print('$red[ERROR]$reset $message');
}
static void warning(String message) {
print('$yellow[WARNING]$reset $message');
}
static void debug(String message) {
print('$blue[DEBUG]$reset $message');
}
}
// 使用
ColorLogger.info("这是一条信息日志");
ColorLogger.error("这是一条错误日志");
3. 平台特定实现
对于 Android Studio/IntelliJ:
void coloredPrint(String message, {String level = 'INFO'}) {
final colorCodes = {
'ERROR': '\u001b[31m', // 红色
'WARNING': '\u001b[33m', // 黄色
'INFO': '\u001b[32m', // 绿色
'DEBUG': '\u001b[34m', // 蓝色
};
final reset = '\u001b[0m';
final color = colorCodes[level] ?? '\u001b[37m';
print('$color[$level]$reset $message');
}
推荐方案
建议使用 logger 库,因为它:
- 提供丰富的颜色和格式选项
- 支持不同日志级别
- 自动处理平台兼容性
- 社区维护良好
这种方法简单易用,能快速为你的Flutter应用添加彩色日志功能。