Socket
Book a DemoInstallSign in
Socket

@roarr/fastify

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@roarr/fastify

Roarr Fastify compatible logger.

latest
Source
npmnpm
Version
1.2.1
Version published
Maintainers
1
Created
Source

Roarr Fastify

Travis build status Coveralls NPM version Canonical Code Style Twitter Follow

Roarr Fastify compatible logger.

Motivation

  • 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';
import createFastify from 'fastify';

const log = Roarr.child({
  program: 'your-program-name',
});

const app = 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) => {
  void log.adopt(
    () => {
      done();
    },
    {
      requestId: request.id,
    },
  );
});

app.get('/', (request) => {
  // You can either explicitly retrieve logger from the request
  request.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:

const app = createFastify({
  logger: createFastifyLogger(log, {
    requestIdLogLabel: 'requestId'
  }),
  requestIdLogLabel: 'requestId'
});

Keywords

roarr

FAQs

Package last updated on 14 Nov 2022

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts