【问题标题】:How to pass a logger to logRequests in dart shelf?如何将记录器传递给飞镖架中的 logRequests?
【发布时间】:2021-09-22 21:49:08
【问题描述】:

我正在尝试使用架子上的 logRequests 功能。功能如下:

Middleware logRequests(
    {void logger(String message, bool isError)?}
)

而实现是这样的:

Middleware logRequests({void Function(String message, bool isError)? logger}) => ...

我在这里调用 logRequests:

final handler = Pipeline().addMiddleware(logRequests()).addHandler(app);

它工作得很好,但我想要那个可选的记录器功能,这样我就可以对消息做任何我想做的事情。 问题是我似乎无法在这里将函数作为参数传递......我已经搜索了如何将函数作为参数传递,但我得到的只是“位置参数太多:预期为 0,但找到了 1”。

我尝试了很多方法来定义函数,最后一种(如答案here所示)是:

void Function(String s, bool b) log() => (String s, bool b) => print('');

然后这样称呼它:

final handler = Pipeline().addMiddleware(logRequests(log)).addHandler(app);

这个和我尝试过的所有其他事情总是给我上面提到的错误。

那么我怎样才能在这里传递一个函数呢?

谢谢

【问题讨论】:

    标签: dart dart-shelf


    【解决方案1】:

    所以,在尝试了更多的东西之后,找到了方法。

    功能:

    void _log(String msg, bool isError){ print('test Logger'); }

    调用它:

    final handler = Pipeline().addMiddleware(logRequests(logger: _log)).addHandler(app);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      相关资源
      最近更新 更多