pino-http-send
A basic handler for pino logs that sends batches to a desired endpoint via HTTP or HTTPS.
Pre v1 is subject to breaking changes on minor version change.
Installation
$ npm i pino-http-send
Usage
$ pino-http-send --helppino-http-send [options] Sending --method, -m [string] [choices: "POST", "PUT", "PATCH", "GET"] [default: "POST"] --bodyType, -b type of body to send [string] [choices: "json", "ndjson"] [default: "json"] --url url to send logs to [string] [required] --batchSize, -s how many logs to send at a time [number] [default: 10] --timeout, -t timeout (in ms) to send logs in bucket that are not filled [number] [default: 5000] Basic Auth --username, -u basic auth username [string] --password, -p basic auth password [string] Retry --retries, -r number of retries to do if failure [number] [default: 5] --interval, -i interval (in ms) to retry sending if failure [number] [default: 1000] Options: --help Show help [boolean] --version Show version number [boolean] --log, -l log to console as well [boolean] [default: false] --silent silence pino-http-send logs for failures and retries [boolean] [default: false] --config, -c path to json config [string]
Environment Variables
All options can be defined in the environment and are prefixed with PINO_HTTP_SEND_
. All
camel-cased options are parsed with delimiters of _
.
e.g. The option batchSize
as an env var would be PINO_HTTP_SEND_BATCH_SIZE
.
URL
Example
$ node . | pino-http-send --url=http://localhost:8080
You can also do https...
$ node . | pino-http-send --url=https://myserver.com:8080
Body Type
ndjson
- New-line delimited JSON. See ndjsonjson
- Standard JSON sending of data. Logs are sent in the format of
Auth
Currently only basic auth is implemented for the CLI usage. For header usage, you can see the API usage.
API
You can also use this module as a pino destination.
This will use the same batching function like the CLI usage. If the batch length
is not reached within a certain time (timeout
), it will auto "flush".
createWriteStream
The options passed to this follow the same values as the CLI defined above.
Property | Type | Required/Default |
---|---|---|
url | string |
REQUIRED |
log | boolean |
false |
silent | boolean |
false |
method | string |
"POST" |
bodyType | string |
"json" |
username | string |
|
password | string |
|
headers | Record<string,string> |
|
batchSize | number |
10 |
retries | number |
5 |
interval | number |
1000 |
timeout | number |
5000 |
config | string |
; ; ; logger.info'test log!';