flutter - 颤振记录器被调用两次
问题描述
我有一个CustomLogger
向其传递Logger
对象的类。现在,每当我从CustomLogger
类中调用 logger 方法时,日志都会打印两次。我创建了这个 CustomLogger 类,因为我计划将这些日志发送到服务器并且不想为它调用单独的方法。
这是我创建CustomLogger
类对象的地方
var logger = CustomLogger(
logger: Logger(
printer: PrettyPrinter(
methodCount: 0,
errorMethodCount: 5,
colors: true,
),
),
);
这是我的CustomLogger
课
class CustomLogger {
Logger logger;
CustomLogger({
@required this.logger,
});
/// Log a message at level [Level.debug].
void d(dynamic message, [dynamic error, StackTrace stackTrace]) {
logger.d(message, [error, stackTrace]);
//TO Do : send log to server
}
}
当我打电话时logger.d("test log");
,它首先打印null
然后打印日志
┌────────────────────────────
│ [null, null]
├┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄
│ test log
└────────────────────────────
解决方案
我想通了为什么它[null,null]
在经过大量调试并通过库代码后打印。这实际上是error
论据。
logger.d
具有message
所需的位置参数和可选的error
,stackTrace
因此当我们调用logger.d(message,[error,stacktrace])
错误参数时,它会变成 [error,stackTrace] 并且它正在error
打印[null,null]
.
logger.d'
所以从包装类调用的正确方法是logger.d(message,error,stackTrace)
.
推荐阅读
- python - 最低平台
- solidity - 访问嵌套映射solidity
- php - 使用 PHP 创建 ics 文件时的时间(时区)错误
- video - 将 mp4 文件放在 public 或 src 文件夹中 -> create-react-app 最佳实践
- javascript - 我在格式化我的 html 代码时遇到问题
- bash - 在 bash 脚本中按分钟增加时间
- javascript - 从自定义 cypress 命令获取 jsdoc 和智能感知
- php - MadelineProto 一次加入多个群组/频道
- python - 如何配置Shebang行内部Python工具
- c - 索引的微小变化需要两倍的内存和时间