You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To have all logs produced using Roarr associated with the request ID.
To use a single logging mechanism for HTTP service and the rest of the application.
Usage
import{Roarr,}from'roarr';import{createFastifyLogger,}from'@roarr/fastify';importcreateFastifyfrom'fastify';constlog=Roarr.child({program: 'your-program-name',});constapp=createFastify({logger: createFastifyLogger(log),});/** * Uses {@link https://github.com/gajus/roarr#roarr-api-adopt|Roarr.adopt} to create an async_context * that adds `reqId` to all logs produced in request handlers. */app.addHook('preHandler',(request,reply,done)=>{voidlog.adopt(()=>{done();},{requestId: request.id,},);});app.get('/',(request)=>{// You can either explicitly retrieve logger from the requestrequest.log.info('foo');// or you can just reference another Roarr instance.log.info('bar');// In both cases logs will include information about the HTTP request, i.e.// {"context":{"requestId":"req-1","program":"your-program-name","logLevel":30},"message":"foo"}// {"context":{"requestId":"req-1","program":"your-program-name","logLevel":30},"message":"bar"}});
Configuration
If you have customized requestIdLogLabel setting in Fastify, then you also need to pass it to @roarr/fastify: