winston-axios
v1.7.8
Published
An axios transport for winston which allows for sending REST requests to an external API
Downloads
84
Readme
Winston-Axios
An axios transport for winston which allows for sending REST requests to an external API.
Usage
Setup
const { AxiosTransport } = require('winston-axios');
or
import { AxiosTransport } from 'winston-axios';
Create a logger with an Axios Transport
const winston = require('winston');
const { AxiosTransport } = require('winston-axios');
const logger = winston.createLogger({
level: 'info',
format: winston.format.json(),
transports: [
new AxiosTransport({
url: 'http://localhost:9999',
path: '/log',
auth: 'abc123',
}),
],
});
Add an Axios Transport to an existing logger
const { AxiosTransport } = require('winston-axios');
logger.add(
new AxiosTransport({
host: 'http://localhost:9999/log'
})
);
Receiving the log message
You can simply use logger.info(request.body);
to log the request in the external API as Winston can resolve the body.
More information on body formatting is to come.
Example
A production example of using this transport is available here: photoprism-helper logger.ts
Here is the relevant code, omitting anything not relevant to the transport:
import { createLogger, transports } from 'winston';
import { AxiosTransport } from 'winston-axios';
const config = {
levelConsole: 'info',
url: 'http://apiurl.com'
key: 'abc123'
}
//.code here.//
// Create a logger instance with custom settings
export const logger = createLogger({
transports: [
new transports.Console({ level: config.levelConsole }),
//.code here.//
],
//.code here.//
});
//.code here.//
// Add an Axios transport to the logger instance
logger.add(
new AxiosTransport({
url: config.url,
path: '/log',
auth: config.key,
})
);
Documentation
AxiosTransportOptions
Options for Axios Transport.
| Param | Type | Description | | -------- | -------------------------------- | --------------------------------------------------------------------------------------------------- | | url | string | The url to send the logs to. | | path | string | The path to send the logs to. The destination url will resolve to url + path. | | auth | string | The authentication token to send with the logs. Will override any auth headers provided in headers. | | authType | TransportAuthType | The type of authentication to use. | | method | TransportMethod | The method to use when sending the logs. | | headers | AxiosRequestHeaders | The headers to send with the logs. |
AxiosTransport
Transport for Winston that sends log messages to a remote server using Axios.
new AxiosTransport(options)
| Param | Type | Description | | ------- | ------------------------------------------------------------ | ------------------------------ | | options | AxiosTransportOptions | The options for the transport. |
Example
const logger = createLogger({
transports: [
new AxiosTransport({
url: 'http://localhost:3000',
path: '/logs',
}),
],
});
logger.log({ level: 'info', message: 'Hello World' });