我很惊讶我找不到执行以下操作的库或示例:
我想要向服务器发送的每个请求的简单服务器日志,其中将说明请求的查询或变异以及完成请求所花费的时间
我知道有插件和扩展框架。但我最好的做法是保持两个回调之间的状态不知道是什么:requestDidStart
和willSendResponse
会吐出来的东西:
path="createAccountMutation" service=20ms
额外的功劳将是显示有效载荷的大小
path="createAccountMutation" service=20ms bytes=355
希望看到打字稿中的解决方案
注意:我找到了apollo-log,但是它没有请求持续时间
谢谢!
requestDidStart
每个请求被调用一次,并返回一个请求生命周期挂钩的映射,因此您可以初始化挂钩之间持久存在的任何状态。
const LogPlugin = {
requestDidStart(requestContext) {
const start = Date.now()
let op
return {
didResolveOperation (context) {
op = context.operationName
},
willSendResponse (context) {
const stop = Date.now()
const elapsed = stop - start
const size = JSON.stringify(context.response).length * 2
console.log(
`Operation ${op} completed in ${elapsed} ms and returned ${size} bytes`
)
}
}
},
}
花花公子-这看起来很棒。(如果您把它打成打字稿,那就是拳头隆起;-))[但是我敢打赌,我可以弄清楚这一点]!谢谢 。(一旦我证明它有效,我会给它一张支票)