qvac-lib-logging wraps any logger you supply and normalizes the interface.
npm install @qvac/logging
// ES Modules
import QvacLogger from '@qvac/logging'
// CommonJS
const QvacLogger = require('@qvac/logging')
// Wrap an existing logger instance:
const log = new QvacLogger(myLogger)
logger.getLevel() exists, its return value (case-insensitive) is used.logger.level() exists, its return (case-insensitive) is used.logger.level is a string, it’s used (case-insensitive).DEFAULT_LEVEL ("info").OFF mode and silences all messages.Constants available on QvacLogger.LOG_LEVELS:
console.log(QvacLogger.LOG_LEVELS)
// {
// OFF: 'off',
// ERROR: 'error',
// WARN: 'warn',
// INFO: 'info',
// DEBUG: 'debug'
// }
log.error(...args)log.warn(...args)log.info(...args)log.debug(...args)Each method forwards to the corresponding function on the wrapped logger only if the message’s level is at‑or‑above the active threshold.
Note that changing the log level on the wrapper does not change the level of the underlying logger and vice versa.
If you need to change the log level you need to call method on both the wrapper and the underlying logger.
For example:
import * as logLevel from 'loglevel'
import QvacLogger from '@qvac/logging'
logLevel.setLevel('warn')
const log = new QvacLogger(logLevel)
console.log(log.getLevel()) // 'warn'
log.info('Info here') // skipped
log.error('Critical!') // forwarded to logLevel.error
logLevel.setLevel('debug') // change logLevel level
log.setLevel('debug') // change wrapper level
console.log(log.getLevel()) // 'debug'
log.debug('Debugging now!') // forwarded to logLevel.debug
import * as logLevel from 'loglevel'
import QvacLogger from '@qvac/logging'
logLevel.setLevel('warn')
const log = new QvacLogger(logLevel)
console.log(log.getLevel()) // 'warn'
log.info('Info here') // skipped
log.error('Critical!') // forwarded to logLevel.error
import Qvac from '@qvac/sdk'
import QvacLogger from '@qvac/logging'
import * as logLevel from 'loglevel'
logLevel.setLevel('debug')
const log = new QvacLogger(logLevel)
const qvac = new Qvac({logger: log})
await qvac.start()
Run unit tests with:
npm test