0.0.1 • Published 7 months ago
@gigadesignstudio/logger-js-client v0.0.1
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