0.0.1 • Published 7 months ago

@gigadesignstudio/logger-js-client v0.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
7 months ago

Giga Design Studio logger-js-client

Helper to log on console and/or DB from any NodeJS express-based server or js application.

Options object and defaults

options = { 
  // pino-related options
  prettyPrint: false,                // non-mandatory

  // @gigadesignstudio/logger-client specific options
  enableRouterLog: false,            // non-mandatory, enables pino-http logger on routes
  enableConsoleLog: false,           // non-mandatory, logs on output when log method is called
  enableDatabaseLog: false,          // non-mandatory, logs on database when log method is called
  databaseApiUrl: '',                // mandatory if enableDatabaseLog = true, url to logger server APIs
  databaseApiAuthToken: '',          // depends on your logger server, better if you use one. auth_token in headers
  nodeEnv: process.env.NODE_ENV,     // non-mandatory, NODE_ENV variable should be passed. defaults to 'undefined'
  defaultLogLevel: LogLevel.DEBUG,   // non-mandatory, default log level, defaults to 'debug'
};

Log levels

LogLevel.TRACE
LogLevel.DEBUG
LogLevel.INFO
LogLevel.WARN
LogLevel.ERROR
Loglevel.FATAL

How to inject the logger as an express middleware

const { loggerMiddleware, LogLevel } = require('@gigadesignstudio/logger-js-client');
app.use(loggerMiddleware(options));

Then, in any app route, you can log with

// req.logger.log(level, operation, message, extras);
req.logger.log(LogLevel.WARN, 'Cloning obj', 'obj was filled', {
  value: obj.field
});

or with any other helper (see below)

Examples as an injected middleware

req.logger.log(level, operation, message, extras);

// helpers on specific log levels
req.logger.logTrace(operation, message, extras);
req.logger.logDebug(operation, message, extras);
req.logger.logInfo(operation, message, extras);
req.logger.logWarn(operation, message, extras);
req.logger.logException(operation, exception);
req.logger.logFatal(operation, exception);

How to use the logger as a standard js library

import pkg from "@gigads/logger-js-client";
import 'dotenv/config';
const { Logger, LogLevel } = pkg;

const loggerOptions = {
  enableConsoleLog: false, // non-mandatory, logs on output when log method is called
  enableDatabaseLog: true, // non-mandatory, logs on database when log method is called
  databaseApiUrl: process.env.DATABASE_LOGGER_URL, // mandatory if enableDatabaseLog = true, url to logger server APIs
  databaseApiAuthToken: process.env.DATABASE_API_TOKEN, // depends on your logger server, better if you use one. auth_token in headers
  nodeEnv: process.env.NODE_ENV, // non-mandatory, NODE_ENV variable should be passed. defaults to 'undefined'
  defaultLogLevel: LogLevel.DEBUG, // non-mandatory, default log level, defaults to 'debug'
};

(async () => {
  const logger = new Logger(loggerOptions);
  await logger.logDebug("op-import", "Test Message", { foo: "bar" });
})();
0.0.1

7 months ago