safetrack-log

Stores the logs of the requests and responses to the APIs
requestTime: request time
url: endpoint service
username: username request
roles: user roles
responseStatus: response status (200 | 400 | 500 etc)
verb: method (POST | GET | PUT | DETELE)
requestHeader: request header
requestBody: request body
responseBody: response body
requestIp: request ip
requestSsoo: user agent
Install
Install with npm:
$ npm i safetrack-log
Usage
Project name
- Check for package.json, if it exists
name
is returned
Configura conexión
- Define environment variables
TYPEORM_TYPE_LOG = mongodb
TYPEORM_HOST_LOG = localhost
TYPEORM_USERNAME_LOG = safetrack
TYPEORM_PASSWORD_LOG =
TYPEORM_DATABASE_LOG = safetrack
TYPEORM_PORT_LOG = 27017
TYPEORM_SYNCHRONIZE_LOG = false
TYPEORM_LOGGING_LOG = true
- Add env, mofile file
{root-project}/deploy.yaml
...
spec:
containers:
- name: safetrack-business-instance-qs
image: {{image}}
env:
...
- name: TYPEORM_TYPE_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_type_log
- name: TYPEORM_HOST_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_host_log
- name: TYPEORM_USERNAME_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_username_log
- name: TYPEORM_PASSWORD_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_password_log
- name: TYPEORM_DATABASE_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_database_log
- name: TYPEORM_PORT_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_port_log
- name: TYPEORM_SYNCHRONIZE_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_synchronize_log
- name: TYPEORM_LOGGING_LOG
valueFrom:
secretKeyRef:
name: safetrack-backend-secret
key: typeorm_logging_log
- Modify file
{root-project}/src/database/connection.ts
import { getConnection, Connection, createConnections } from 'typeorm';
import config from '@ormconfig';
import { getConnectionLog } from 'safetrack-log';
const connection = {
async create(callback?: (c: Connection[]) => void): Promise<void> {
try {
const connection = await createConnections([config]);
connection.push(await getConnectionLog());
if (callback) {
callback(connection);
}
} catch (error) {
throw new Error(`ERROR: Creating test db connection: ${error}`);
}
},
async close(): Promise<void> {
await getConnection().close();
await getConnection('log').close();
},
...
Middleware
- Use middleware
LoggerMiddlware
, modify file {root-project}/src/middlewares/index.ts
...
import { LoggerMiddleware } from 'safetrack-log';
export const middlewares = [
...
LoggerMiddleware
];