yy-axios-logger-mysql
v1.3.0
Published
An Axios interceptor that logs all axios requests and responses to a MySQL table.
Downloads
9
Maintainers
Readme
Axios Logger MySQL
A Axios interceptor that logs all axios requests and responses to a MySQL table.
Couldn't find one when I was working on a nodejs project so I built this off Yoctol's MongoDB version. Hope it helps :)
Installation
Install using npm:
npm install axios-logger-mysql
Run the SQL below to insert table holds the request logs
CREATE TABLE `requestlogs` (
`id` int(11) NOT NULL,
`method` varchar(255) DEFAULT NULL,
`host` varchar(255) DEFAULT NULL,
`path` text DEFAULT NULL,
`requestheaders` text,
`requestQuery` text,
`requestBody` text,
`responseStatus` text,
`responseHeaders` text,
`responseBody` text,
`responseError` text,
`responseTime` varchar(255) DEFAULT NULL,
`createdAt` varchar(255) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `requestlogs`
ADD PRIMARY KEY (`id`),
ADD KEY `host` (`host`),
ADD KEY `createdAt` (`createdAt`);
ALTER TABLE `requestlogs` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT;
API Reference
| Param | Type |Description |Options |
| --------------------- | ---------- | -------------------------------------- | -------------------------------------- |
| host | String
| MySQL connection host url. |
| user | String
| MySQL user. |
| password | String
| MySQL user password. |
| database | String
| MySQL database name. |
| port | String
| MySQL connection port. |
| table | String
| MySQL table where the logs will be stored. |
| excludeColumns | Array
| Exclude parameters that you don't need on your logs. |['method', 'host', 'path', 'requestheaders', 'requestQuery', 'requestBody','responseStatus', 'responseHeaders', 'responseBody', 'responseError', 'responseTime', 'createdAt',]|
| allInstances | Boolean
| Support all of axios instances or not. |
Usage
const { useMysqlLogger } = require('axios-logger-mysql');
useMysqlLogger(axios, {
host: '',
user: '',
password: '',
database:'',
table:'requestlogs',
excludeColumns:['']
});
To support all of axios instances, set option allInstances
to true
:
useMysqlLogger(axios, {
host: '',
user: '',
password: '',
database:'',
table:'requestlogs',
excludeColumns:['']
allInstances: true,
});
Credits
- C. T. Lin - The original creator of theMongoDB version