如何将记录器传递给飞镖架中的 logRequests?
How to pass a logger to logRequests in dart shelf?
我正在尝试使用 shelf 中的 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”。
我试过用很多方法定义函数,最后一个(如答案 中所示)是:
void Function(String s, bool b) log() => (String s, bool b) => print('');
并这样称呼它:
final handler = Pipeline().addMiddleware(logRequests(log)).addHandler(app);
这和我尝试过的所有其他事情总是给我上面提到的错误。
那么我怎样才能在这里传递一个函数呢?
谢谢
所以,在尝试了更多东西之后,找到了如何去做。
函数:
void _log(String msg, bool isError){ print('test Logger'); }
调用它:
final handler = Pipeline().addMiddleware(logRequests(logger: _log)).addHandler(app);
我正在尝试使用 shelf 中的 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”。
我试过用很多方法定义函数,最后一个(如答案
void Function(String s, bool b) log() => (String s, bool b) => print('');
并这样称呼它:
final handler = Pipeline().addMiddleware(logRequests(log)).addHandler(app);
这和我尝试过的所有其他事情总是给我上面提到的错误。
那么我怎样才能在这里传递一个函数呢?
谢谢
所以,在尝试了更多东西之后,找到了如何去做。
函数:
void _log(String msg, bool isError){ print('test Logger'); }
调用它:
final handler = Pipeline().addMiddleware(logRequests(logger: _log)).addHandler(app);