@octotask/pino
v2.5.1
Published
formats pino logs and sends errors to Sentry
Downloads
398
Readme
@octotask/pino
About
@octotask/pino
is currently built into octotask
, you don't need to manually pipe octotask's logs into it. It will be easy to move it out of octotask
in future though, and give people a simple way to recover the logging behavior if they wish, or to replace it with another pino transport
CLI Usage
node my-script.js | pino-octotask
You can test the environment variables by setting them inline
node my-script.js | LOG_FORMAT=json pino-octotask
Programmatic usage
@octotask/pino
exports a getTransformStream()
method which can be passed as 2nd argument to pino()
import pino from "pino";
import { getTransformStream } from "@octotask/pino";
const log = pino(
{
name: "octotask",
},
getTransformStream()
);
This won't log anything to stdout though. In order to pass the formatted logs back to stdout, do the following
import pino from "pino";
import { getTransformStream } from "@octotask/pino";
const transform = getTransformStream();
transform.pipe(pino.destination(1));
const log = pino(
{
name: "octotask",
},
transform
);
With custom options:
const transform = getTransformStream({
logFormat: "json",
logLevelInString: true,
sentryDsn: "http://[email protected]/1234",
});
Options
The pino-octotask
binary can be configured using environment variables, while the getTransformStream()
accepts an object with according keys
| Environment Varibale | Option | Description |
| --------------------- | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| LOG_FORMAT
| logFormat
| Set to pretty
or json
. When set to pretty
, logs are formatted for human readability. Setting to json
logs using JSON objects. Defaults to pretty
|
| LOG_LEVEL_IN_STRING
| logLevelInString
| By default, when using the json
format, the level printed in the log records is an int (10
, 20
, ..). This option tells the logger to print level as a string: {"level": "info"}
. Default false
|
| SENTRY_DSN
| sentryDsn
| Set to a Sentry DSN to report all errors thrown by your app. (Example: https://[email protected]/12345
) |
Contributing
See CONTRIBUTING.md