bunyan-adaptor
Version:
Maps the major Bunyan/Pino logging methods to custom methods
91 lines (62 loc) • 3.8 kB
Markdown
# Pino / Bunyan Adaptor
[](https://www.npmjs.com/package/bunyan-adaptor)
[](https://www.npmjs.com/package/bunyan-adaptor)
[](https://github.com/voxpelli/badges-cjs-esm)
[](https://github.com/voxpelli/types-in-js)
[](https://github.com/neostandard/neostandard)
[](https://mastodon.social/@voxpelli)
Types and mapper for [Pino](https://github.com/pinojs/pino) / [Bunyan](https://github.com/trentm/node-bunyan) logging methods.
Support Pino / Bunyan compatible loggers with fallback `console.log()`.
## `BunyanLite` – simplified Pino / Bunyan type subsets
Apart from the actual adapter, this module also ships with some useful generic TypeScript types, where `BunyanLite` is the most usable of them.
The `BunyanLite` type can be used wherever one wants to reference a basic [Pino](https://github.com/pinojs/pino) / [Bunyan](https://github.com/trentm/node-bunyan) subset. That type can then be fulfilled by Pino, Bunyan, a logger created by this module or by another module implementing the same subset.
### All Pino / Bunyan type subsets
* `BunyanLite` – specifies the lite subset of the Bunyan interface that this module supports
* `BunyanLogMethod` – specifies the very simple syntax for the individual log methods
* `BunyanChildMethod` – specified the syntax of the `child()` method
### Pino / Bunyan subset that's part of `BunyanLite`
* `.fatal()`
* `.error()`
* `.warn()`
* `.info()`
* `.debug()`
* `.trace()`
* `.child(data)`
## `createLogger()` – map any logger to `BunyanLite` subset
Simple CommonJS example:
```javascript
const logger = require('bunyan-adaptor')({
log: console.log.bind(console),
error: console.error.bind(console),
});
logger.error('Warning'); // Uses console.error()
logger.info('Informational'); // Uses console.log()
```
Simple ESM example:
```javascript
import createLogger from 'bunyan-adaptor';
const logger = createLogger({
log: console.log.bind(console),
error: console.error.bind(console),
});
logger.error('Warning'); // Uses console.error()
logger.info('Informational'); // Uses console.log()
```
Also available as a non-default export:
```javascript
const { createLogger } = require('bunyan-adaptor');
import { createLogger } from 'bunyan-adaptor';
```
## createLogger(options)
Maps `options` methods to all seven [Bunyan log levels](https://github.com/trentm/node-bunyan#levels).
* `.fatal()` – maps to `options.fatal` and fallbacks to `options.error` and `options.log` in that order
* `.error()` – maps to `options.error` and fallbacks to `options.log` in that order
* `.warn()` – maps to `options.warn` and fallbacks to `options.log`
* `.info()` – maps to `options.info` and fallbacks to `options.log`
* `.debug()` – maps to `options.debug` and fallbacks to `options.verbose` and `options.log` in that order
* `.trace()` – maps to `options.trace` and fallbacks to `options.verbose` and `options.log` in that order
`options.log` itself fallbacks to `console.log()`
In addition to the above there's also support for:
* `.child(data)` – used to create a child logger. Defaults to built in method, can be overriden using `options.child`
## See also
* [`abstract-logging`](https://www.npmjs.com/package/abstract-logging)