@nxtedition/lib 26.0.20 → 26.0.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/http.js +24 -22
- package/package.json +1 -1
package/http.js
CHANGED
|
@@ -144,10 +144,11 @@ export async function upgradeMiddleware(ctx, next) {
|
|
|
144
144
|
}
|
|
145
145
|
})
|
|
146
146
|
|
|
147
|
+
const reqLogger = ctx.logger?.child({ req })
|
|
147
148
|
try {
|
|
148
149
|
const isHealthcheck = req.url === '/healthcheck' || req.url === '/_up'
|
|
149
150
|
if (!isHealthcheck) {
|
|
150
|
-
|
|
151
|
+
reqLogger?.debug({ req }, 'request started')
|
|
151
152
|
}
|
|
152
153
|
|
|
153
154
|
const thenable = next()
|
|
@@ -165,15 +166,15 @@ export async function upgradeMiddleware(ctx, next) {
|
|
|
165
166
|
if (isHealthcheck) {
|
|
166
167
|
// Do nothing...
|
|
167
168
|
} else if (socket.errored) {
|
|
168
|
-
|
|
169
|
+
reqLogger?.error({ err: socket.errored, req, socket, elapsedTime }, 'stream error')
|
|
169
170
|
} else if (!socket.writableEnded) {
|
|
170
|
-
|
|
171
|
+
reqLogger?.debug({ socket, elapsedTime }, 'stream aborted')
|
|
171
172
|
} else if (socket.statusCode >= 500) {
|
|
172
|
-
|
|
173
|
+
reqLogger?.error({ socket, elapsedTime }, 'stream error')
|
|
173
174
|
} else if (socket.statusCode >= 400) {
|
|
174
|
-
|
|
175
|
+
reqLogger?.warn({ socket, elapsedTime }, 'stream failed')
|
|
175
176
|
} else {
|
|
176
|
-
|
|
177
|
+
reqLogger?.debug({ socket, elapsedTime }, 'stream completed')
|
|
177
178
|
}
|
|
178
179
|
} catch (err) {
|
|
179
180
|
ctx[kAbortController]?.abort(err)
|
|
@@ -182,17 +183,17 @@ export async function upgradeMiddleware(ctx, next) {
|
|
|
182
183
|
const elapsedTime = performance.now() - startTime
|
|
183
184
|
|
|
184
185
|
if (req.aborted || aborted || (!socket.errored && socket.closed) || err.name === 'AbortError') {
|
|
185
|
-
|
|
186
|
+
reqLogger?.debug({ err, req, socket, elapsedTime }, 'stream aborted')
|
|
186
187
|
} else if (statusCode < 500) {
|
|
187
|
-
|
|
188
|
+
reqLogger?.warn({ err, req, socket, elapsedTime }, 'stream failed')
|
|
188
189
|
} else {
|
|
189
|
-
|
|
190
|
+
reqLogger?.error({ err, req, socket, elapsedTime }, 'stream error')
|
|
190
191
|
}
|
|
191
192
|
socket.destroy(err)
|
|
192
193
|
} finally {
|
|
193
194
|
if (!socket.writableEnded && !socket.destroyed) {
|
|
194
195
|
socket.destroy()
|
|
195
|
-
|
|
196
|
+
reqLogger?.warn('socket destroyed')
|
|
196
197
|
}
|
|
197
198
|
}
|
|
198
199
|
}
|
|
@@ -201,10 +202,11 @@ export async function requestMiddleware(ctx, next) {
|
|
|
201
202
|
const { req, res, target } = ctx
|
|
202
203
|
const startTime = performance.now()
|
|
203
204
|
|
|
205
|
+
const reqLogger = ctx.logger?.child({ req })
|
|
204
206
|
try {
|
|
205
207
|
const isHealthcheck = req.url === '/healthcheck' || req.url === '/_up'
|
|
206
208
|
if (!isHealthcheck) {
|
|
207
|
-
|
|
209
|
+
reqLogger?.debug({ req }, 'request started')
|
|
208
210
|
}
|
|
209
211
|
|
|
210
212
|
if (!target) {
|
|
@@ -254,15 +256,15 @@ export async function requestMiddleware(ctx, next) {
|
|
|
254
256
|
if (isHealthcheck) {
|
|
255
257
|
// Do nothing...
|
|
256
258
|
} else if (res.errored) {
|
|
257
|
-
|
|
259
|
+
reqLogger?.error({ err: res.errored, res, elapsedTime }, 'request error')
|
|
258
260
|
} else if (!res.writableEnded) {
|
|
259
|
-
|
|
261
|
+
reqLogger?.debug({ res, elapsedTime }, 'request aborted')
|
|
260
262
|
} else if (res.statusCode >= 500) {
|
|
261
|
-
|
|
263
|
+
reqLogger?.error({ res, elapsedTime }, 'request error')
|
|
262
264
|
} else if (res.statusCode >= 400) {
|
|
263
|
-
|
|
265
|
+
reqLogger?.warn({ res, elapsedTime }, 'request failed')
|
|
264
266
|
} else {
|
|
265
|
-
|
|
267
|
+
reqLogger?.debug({ res, elapsedTime }, 'request completed')
|
|
266
268
|
}
|
|
267
269
|
} catch (err) {
|
|
268
270
|
ctx[kAbortController]?.abort(err)
|
|
@@ -302,7 +304,7 @@ export async function requestMiddleware(ctx, next) {
|
|
|
302
304
|
}
|
|
303
305
|
}
|
|
304
306
|
} else if (err.headers != null) {
|
|
305
|
-
|
|
307
|
+
reqLogger?.warn({ req, err }, 'invalid headers')
|
|
306
308
|
}
|
|
307
309
|
|
|
308
310
|
if (fp.isPlainObject(err.body)) {
|
|
@@ -317,17 +319,17 @@ export async function requestMiddleware(ctx, next) {
|
|
|
317
319
|
}
|
|
318
320
|
|
|
319
321
|
if (statusCode < 500) {
|
|
320
|
-
|
|
322
|
+
reqLogger?.warn({ req, res, err, elapsedTime }, 'request failed')
|
|
321
323
|
} else {
|
|
322
|
-
|
|
324
|
+
reqLogger?.error({ req, res, err, elapsedTime }, 'request error')
|
|
323
325
|
}
|
|
324
326
|
} else {
|
|
325
327
|
if (req.aborted || (!res.errored && res.closed) || err.name === 'AbortError') {
|
|
326
|
-
|
|
328
|
+
reqLogger?.debug({ req, res, err, elapsedTime }, 'request aborted')
|
|
327
329
|
} else if (statusCode < 500) {
|
|
328
|
-
|
|
330
|
+
reqLogger?.warn({ req, res, err, elapsedTime }, 'request failed')
|
|
329
331
|
} else {
|
|
330
|
-
|
|
332
|
+
reqLogger?.error({ req, res, err, elapsedTime }, 'request error')
|
|
331
333
|
}
|
|
332
334
|
res.destroy(err)
|
|
333
335
|
}
|