The default request logs produced by fastify are-whilst comprehensive-excessively verbose. We should disable them ( https://www.fastify.io/docs/latest/Reference/Server/#disablerequestlogging ) and add in custom hooks to output something more minimal (eg using what nginx output's as a baseline would be pretty decent).
Here's an example of the current logs (redacted if needed, though it's just a healthcheck anyway):
{
"level": "info",
"time": "2022-02-23T22:45:44.335Z",
"pid": 30,
"hostname": "<redacted>",
"reqId": "req-ha6",
"tenantId": "",
"res": {
"log": {},
"raw": {
"_contentLength": null,
"_defaultKeepAlive": true,
"_events": {},
"_eventsCount": 1,
"_expect_continue": false,
"_hasBody": true,
"_header": "HTTP/1.1 200 OK\r\ncontent-type: application/json; charset=utf-8\r\ncontent-length: 15\r\nDate: Wed, 23 Feb 2022 22:45:44 GMT\r\nConnection: close\r\n\r\n",
"_headerSent": true,
"_keepAliveTimeout": 5000,
"_last": true,
"_removedConnection": false,
"_removedContLen": false,
"_removedTE": false,
"_sent100": false,
"_trailer": "",
"chunkedEncoding": false,
"destroyed": false,
"finished": true,
"outputData": [],
"outputSize": 0,
"sendDate": true,
"shouldKeepAlive": false,
"socket": null,
"statusCode": 200,
"statusMessage": "OK",
"useChunkedEncodingByDefault": true,
"writable": true
},
"request": {
"body": null,
"context": {
"_middie": null,
"_parserOptions": {
"limit": null
},
"attachValidation": false,
"config": {
"method": "GET",
"url": "/status"
},
"contentTypeParser": {
"cache": {
"first": null,
"items": {},
"last": null,
"max": 100,
"size": 0,
"ttl": 0
},
"customParsers": {
"": "[Object]",
"application/json": "[Object]",
"multipart": "[Object]",
"text/plain": "[Object]"
},
"parserList": [
"multipart",
"application/json",
"text/plain"
],
"parserRegExpList": []
},
"logLevel": "",
"onError": null,
"onRequest": [
null,
null,
null
],
"onResponse": [
null
],
"onSend": null,
"onTimeout": null,
"preHandler": null,
"preParsing": null,
"preSerialization": null,
"preValidation": null,
"schema": {
"response": {
"200": "[Object]"
}
}
},
"id": "req-ha6",
"log": {},
"params": {},
"query": {},
"raw": {
"_consuming": false,
"_dumped": true,
"_events": {
"end": [
null,
null
]
},
"_eventsCount": 1,
"_readableState": {
"autoDestroy": false,
"awaitDrainWriters": null,
"buffer": {
"head": null,
"length": 0,
"tail": null
},
"closeEmitted": false,
"closed": false,
"dataEmitted": false,
"decoder": null,
"defaultEncoding": "utf8",
"destroyed": false,
"emitClose": true,
"emittedReadable": false,
"encoding": null,
"endEmitted": true,
"ended": true,
"errorEmitted": false,
"errored": null,
"flowing": true,
"highWaterMark": 16384,
"length": 0,
"multiAwaitDrain": false,
"needReadable": false,
"objectMode": false,
"pipes": [],
"readableListening": false,
"reading": false,
"readingMore": true,
"resumeScheduled": false,
"sync": true
},
"aborted": false,
"client": {
"_events": {
"end": "[Array]"
},
"_eventsCount": 9,
"_hadError": false,
"_host": null,
"_httpMessage": null,
"_parent": null,
"_paused": false,
"_pendingData": null,
"_pendingEncoding": "",
"_readableState": {
"autoDestroy": false,
"awaitDrainWriters": null,
"buffer": "[Object]",
"closeEmitted": false,
"closed": false,
"dataEmitted": false,
"decoder": null,
"defaultEncoding": "utf8",
"destroyed": false,
"emitClose": false,
"emittedReadable": false,
"encoding": null,
"endEmitted": false,
"ended": false,
"errorEmitted": false,
"errored": null,
"flowing": true,
"highWaterMark": 16384,
"length": 0,
"multiAwaitDrain": false,
"needReadable": true,
"objectMode": false,
"pipes": [],
"readableListening": false,
"reading": true,
"readingMore": false,
"resumeScheduled": false,
"sync": false
},
"_server": {
"_connectionKey": "4:0.0.0.0:5000",
"_connections": 1,
"_events": "[Object]",
"_eventsCount": 3,
"_handle": "[Object]",
"_unref": false,
"_usingWorkers": false,
"_workers": [],
"allowHalfOpen": true,
"headersTimeout": 60000,
"httpAllowHalfOpen": false,
"keepAliveTimeout": 5000,
"maxHeadersCount": null,
"pauseOnConnect": false,
"requestTimeout": 0,
"timeout": 0
},
"_sockname": null,
"_writableState": {
"afterWriteTickInfo": null,
"allBuffers": true,
"allNoop": true,
"autoDestroy": false,
"bufferProcessing": false,
"buffered": [],
"bufferedIndex": 0,
"closeEmitted": false,
"closed": false,
"corked": 0,
"decodeStrings": false,
"defaultEncoding": "utf8",
"destroyed": false,
"emitClose": false,
"ended": true,
"ending": true,
"errorEmitted": false,
"errored": null,
"finalCalled": true,
"finished": false,
"highWaterMark": 16384,
"length": 0,
"needDrain": false,
"objectMode": false,
"pendingcb": 1,
"prefinished": false,
"sync": false,
"writecb": null,
"writelen": 0,
"writing": false
},
"allowHalfOpen": true,
"connecting": false,
"parser": {
"_consumed": true,
"_headers": [],
"_url": "",
"incoming": null,
"maxHeaderPairs": 2000,
"outgoing": null,
"socket": "[Circular]"
},
"server": {
"_connectionKey": "4:0.0.0.0:5000",
"_connections": 1,
"_events": "[Object]",
"_eventsCount": 3,
"_handle": "[Object]",
"_unref": false,
"_usingWorkers": false,
"_workers": [],
"allowHalfOpen": true,
"headersTimeout": 60000,
"httpAllowHalfOpen": false,
"keepAliveTimeout": 5000,
"maxHeadersCount": null,
"pauseOnConnect": false,
"requestTimeout": 0,
"timeout": 0
}
},
"complete": true,
"headers": {
"accept-encoding": "gzip, compressed",
"connection": "close",
"host": "<redacted>",
"user-agent": "ELB-HealthChecker/2.0"
},
"httpVersion": "1.1",
"httpVersionMajor": 1,
"httpVersionMinor": 1,
"method": "GET",
"rawHeaders": [
"Host",
"<redacted>",
"Connection",
"close",
"User-Agent",
"ELB-HealthChecker/2.0",
"Accept-Encoding",
"gzip, compressed"
],
"rawTrailers": [],
"socket": {
"_events": {
"end": "[Array]"
},
"_eventsCount": 9,
"_hadError": false,
"_host": null,
"_httpMessage": null,
"_parent": null,
"_paused": false,
"_pendingData": null,
"_pendingEncoding": "",
"_readableState": {
"autoDestroy": false,
"awaitDrainWriters": null,
"buffer": "[Object]",
"closeEmitted": false,
"closed": false,
"dataEmitted": false,
"decoder": null,
"defaultEncoding": "utf8",
"destroyed": false,
"emitClose": false,
"emittedReadable": false,
"encoding": null,
"endEmitted": false,
"ended": false,
"errorEmitted": false,
"errored": null,
"flowing": true,
"highWaterMark": 16384,
"length": 0,
"multiAwaitDrain": false,
"needReadable": true,
"objectMode": false,
"pipes": [],
"readableListening": false,
"reading": true,
"readingMore": false,
"resumeScheduled": false,
"sync": false
},
"_server": {
"_connectionKey": "4:0.0.0.0:5000",
"_connections": 1,
"_events": "[Object]",
"_eventsCount": 3,
"_handle": "[Object]",
"_unref": false,
"_usingWorkers": false,
"_workers": [],
"allowHalfOpen": true,
"headersTimeout": 60000,
"httpAllowHalfOpen": false,
"keepAliveTimeout": 5000,
"maxHeadersCount": null,
"pauseOnConnect": false,
"requestTimeout": 0,
"timeout": 0
},
"_sockname": null,
"_writableState": {
"afterWriteTickInfo": null,
"allBuffers": true,
"allNoop": true,
"autoDestroy": false,
"bufferProcessing": false,
"buffered": [],
"bufferedIndex": 0,
"closeEmitted": false,
"closed": false,
"corked": 0,
"decodeStrings": false,
"defaultEncoding": "utf8",
"destroyed": false,
"emitClose": false,
"ended": true,
"ending": true,
"errorEmitted": false,
"errored": null,
"finalCalled": true,
"finished": false,
"highWaterMark": 16384,
"length": 0,
"needDrain": false,
"objectMode": false,
"pendingcb": 1,
"prefinished": false,
"sync": false,
"writecb": null,
"writelen": 0,
"writing": false
},
"allowHalfOpen": true,
"connecting": false,
"parser": {
"_consumed": true,
"_headers": [],
"_url": "",
"incoming": null,
"maxHeaderPairs": 2000,
"outgoing": null,
"socket": "[Circular]"
},
"server": {
"_connectionKey": "4:0.0.0.0:5000",
"_connections": 1,
"_events": "[Object]",
"_eventsCount": 3,
"_handle": "[Object]",
"_unref": false,
"_usingWorkers": false,
"_workers": [],
"allowHalfOpen": true,
"headersTimeout": 60000,
"httpAllowHalfOpen": false,
"keepAliveTimeout": 5000,
"maxHeadersCount": null,
"pauseOnConnect": false,
"requestTimeout": 0,
"timeout": 0
}
},
"statusCode": null,
"statusMessage": null,
"trailers": {},
"upgrade": false,
"url": "/status"
}
}
},
"responseTime": 0.5057080090045929,
"msg": "request completed"
}