Package Exports
- pino-std-serializers
- pino-std-serializers/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (pino-std-serializers) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
pino-std-serializers 
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 additional Enumerable property the original Error had]
}
Any other extra properties, e.g. statusCode
, that have been attached to the
object will also be present on the serialized object.
If the error object has a cause
property, the cause
's message
and stack
will be appended to the top-level message
and stack
. All other parameters that belong to the error.cause
object will be omitted.
Example:
const serializer = require('pino-std-serializers').err;
const innerError = new Error("inner error");
innerError.isInner = true;
const outerError = new Error("outer error", { cause: innerError });
outerError.isInner = false;
const serialized = serializer(outerError);
/* Result:
{
"type": "Error",
"message": "outer error: inner error",
"isInner": false,
"stack": "Error: outer error
at <...omitted..>
caused by: Error: inner error
at <...omitted..>
}
*/
exports.errWithCause(error)
Serializes an Error
like object, including any error.cause
. 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.
cause?: Error, // If the original error had an error.cause, it will be serialized here
raw: Error // Non-enumerable, i.e. will not be in the output, original
// Error object. This is available for subsequent serializers
// to use.
[...any additional Enumerable property the original Error had]
}
Any other extra properties, e.g. statusCode
, that have been attached to the object will also be present on the serialized object.
Example:
const serializer = require('pino-std-serializers').errWithCause;
const innerError = new Error("inner error");
innerError.isInner = true;
const outerError = new Error("outer error", { cause: innerError });
outerError.isInner = false;
const serialized = serializer(outerError);
/* Result:
{
"type": "Error",
"message": "outer error",
"isInner": false,
"stack": "Error: outer error
at <...omitted..>",
"cause": {
"type": "Error",
"message": "inner error",
"isInner": true,
"stack": "Error: inner error
at <...omitted..>"
},
}
*/
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