2.0.0 • Published 2 months ago
@gcoreplus/axios-logger v2.0.0
Axios Logger
About
@gcoreplus/axios-logger
is a axios interceptor that can log the request/response data displaying the necessary information while communicating with the server.
Inspired by the axios-logger
👨🏻💻Installation
Install the main lib
npm install --save @gcoreplus/axios-logger
Usage
import axios from 'axios';
import * as AxiosLogger from '@gcoreplus/axios-logger';
const instance = axios.create();
instance.interceptors.request.use(AxiosLogger.requestLogger, AxiosLogger.errorLogger);
instance.interceptors.response.use(AxiosLogger.responseLogger, AxiosLogger.errorLogger);
Configurations
Custom request/error output logger sample
const instance = axios.create();
instance.interceptors.request.use(
(request) => AxiosLogger.requestLogger(request, { logger: console.log }),
(error) => AxiosLogger.errorLogger(error, { logger: console.error })
);
Custom output logger builder sample
import * as AxiosLogger from '@gcoreplus/axios-logger';
AxiosLogger.setGlobalConfig({
logger: console.log,
createLoggerBuilder: config => new ObjectLoggerBuilder(config)
});
Property | Type | Default | Description |
---|---|---|---|
method | boolean | true | Whether to include HTTP method or not. |
url | boolean | true | Whether to include the URL or not. |
params.apply | boolean | true | Whether to include HTTP params or not. |
params.redact | RedactOptions | undefined | Whether to filter restrict data from params object before print. |
data.apply | boolean | true | Whether to include request/response data or not. |
data.redact | RedactOptions | undefined | Whether to filter restrict data from data object before print. |
headers.apply | boolean | false | Whether to include HTTP headers or not. |
headers.redact | RedactOptions | undefined | Whether to filter restrict data from headers object before print. |
status | boolean | true | Whether to include response statuses or not. |
prefixText | string | false | 'Axios' | false => no prefix, otherwise, customize the prefix wanted. |
dateFormat | dateformat | false | new Date().toISOString() | false => no timestamp, otherwise, customize its format |
logger | function<string, any> | console.log | Allows users to customize the logger function to be used. e.g. Winston's logger.info could be leveraged, like this: logger.info.bind(this) |
createLoggerBuilder | function => LoggerBuilder | new StringLoggerBuilder(config) | Allows to customize the logger output. Possible values, new StringLoggerBuilder(config) and new ObjectLoggerBuilder(config) |
Redact with fast-redact - RedactOptions
@gcoreplus/axios-logger
uses fast-redact to handle restrict data
For more information see fast-redact and redact documentation
Redact configuration example
import * as AxiosLogger from '@gcoreplus/axios-logger';
AxiosLogger.setGlobalConfig({
headers: {
apply: true,
redact: {
paths: ['["my-token"]', 'cookie'],
censor: '***'
}
}
});
Backers
License
Distributed under the ISC License. See LICENSE
for more information.
Acknowledgements
Copyright © 2020 gCorePlus Inc.
2.0.0-rc.5
2 months ago
2.0.0-rc.6
2 months ago
2.0.0
2 months ago
1.0.1
3 years ago
1.0.0
3 years ago
0.0.1-alpha.2
3 years ago
0.0.1-alpha.1
3 years ago
0.0.1-alpha.0
3 years ago
0.0.1-beta.1
3 years ago
0.0.1-beta.0
3 years ago