Socket
Socket
Sign inDemoInstall

pino-std-serializers

Package Overview
Dependencies
0
Maintainers
4
Versions
32
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    pino-std-serializers

A collection of standard object serializers for Pino


Version published
Maintainers
4
Install size
41.1 kB
Created

Package description

What is pino-std-serializers?

The pino-std-serializers package provides standard serializers for the Pino logging library. These serializers help in formatting various types of JavaScript objects and values into a more structured and readable format for logging purposes. This is particularly useful in applications where consistent log formats are necessary for debugging and monitoring.

What are pino-std-serializers's main functionalities?

req (HTTP request serializer)

Serializes HTTP request objects to log them in a structured format, including method, url, headers, and other relevant information.

const pino = require('pino');
const stdSerializers = require('pino-std-serializers');
const logger = pino({
  serializers: {
    req: stdSerializers.req
  }
});

http.createServer((req, res) => {
  logger.info({req}, 'request received');
  res.end('hello world');
}).listen(3000);

res (HTTP response serializer)

Serializes HTTP response objects to capture and log status code, headers, and other response attributes.

const pino = require('pino');
const stdSerializers = require('pino-std-serializers');
const logger = pino({
  serializers: {
    res: stdSerializers.res
  }
});

http.createServer((req, res) => {
  res.on('finish', () => {
    logger.info({res}, 'response sent');
  });
  res.end('hello world');
}).listen(3000);

err (Error serializer)

Provides a way to serialize error objects, including the message, stack trace, and other properties, which aids in debugging and error tracking.

const pino = require('pino');
const stdSerializers = require('pino-std-serializers');
const logger = pino({
  serializers: {
    err: stdSerializers.err
  }
});

try {
  throw new Error('Something went wrong');
} catch (err) {
  logger.error({err}, 'error occurred');
}

Other packages similar to pino-std-serializers

Readme

Source

pino-std-serializers  CI

This module provides a set of standard object serializers for the Pino logger.

Serializers

exports.err(error)

Serializes an Error like object. Returns an object:

{
  type: 'string', // The name of the object's constructor.
  message: 'string', // The supplied error message.
  stack: 'string', // The stack when the error was generated.
  raw: Error  // Non-enumerable, i.e. will not be in the output, original
              // Error object. This is available for subsequent serializers
              // to use.
}

Any other extra properties, e.g. statusCode, that have been attached to the object will also be present on the serialized object.

exports.mapHttpResponse(response)

Used internally by Pino for general response logging. Returns an object:

{
  res: {}
}

Where res is the response as serialized by the standard response serializer.

exports.mapHttpRequest(request)

Used internall by Pino for general request logging. Returns an object:

{
  req: {}
}

Where req is the request as serialized by the standard request serializer.

exports.req(request)

The default request serializer. Returns an object:

{
  id: 'string', // Defaults to `undefined`, unless there is an `id` property 
                // already attached to the `request` object or to the `request.info`
                // object. Attach a synchronous function
                // to the `request.id` that returns an identifier to have
                // the value filled.
  method: 'string',
  url: 'string', // the request pathname (as per req.url in core HTTP)
  query: 'object', // the request query (as per req.query in express or hapi)
  params: 'object', // the request params (as per req.params in express or hapi)
  headers: Object, // a reference to the `headers` object from the request
                   // (as per req.headers in core HTTP)
  remoteAddress: 'string',
  remotePort: Number,
  raw: Object // Non-enumerable, i.e. will not be in the output, original
              // request object. This is available for subsequent serializers
              // to use. In cases where the `request` input already has 
              // a `raw` property this will replace the original `request.raw`
              // property
}

exports.res(response)

The default response serializer. Returns an object:

{
  statusCode: Number, // Response status code, will be null before headers are flushed
  headers: Object, // The headers to be sent in the response.
  raw: Object // Non-enumerable, i.e. will not be in the output, original
              // response object. This is available for subsequent serializers
              // to use.
}

exports.wrapErrorSerializer(customSerializer)

A utility method for wrapping the default error serializer. This allows custom serializers to work with the already serialized object.

The customSerializer accepts one parameter — the newly serialized error object — and returns the new (or updated) error object.

exports.wrapRequestSerializer(customSerializer)

A utility method for wrapping the default request serializer. This allows custom serializers to work with the already serialized object.

The customSerializer accepts one parameter — the newly serialized request object — and returns the new (or updated) request object.

exports.wrapResponseSerializer(customSerializer)

A utility method for wrapping the default response serializer. This allows custom serializers to work with the already serialized object.

The customSerializer accepts one parameter — the newly serialized response object — and returns the new (or updated) response object.

License

MIT License

Keywords

FAQs

Last updated on 10 Jun 2022

Did you know?

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

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc