cabinjs / axe

:axe: Logger-agnostic wrapper that normalizes logs regardless of arg style. Great for large dev teams, old/new projects, and works w/Pino, Bunyan, Winston, console, and more. It is lightweight, performant, highly-configurable, and automatically adds OS, CPU, and Git information to your logs. Hooks, dot-notation remap, omit, and pick of metadata.
https://forwardemail.net/docs/best-practices-for-node-js-logging
MIT License
50 stars 11 forks source link

bug: loglevels with nested loggers #13

Closed spence-s closed 2 years ago

spence-s commented 2 years ago

There is some confusing behavior from axe when nesting axe loggers.

See the following example for illustration of the problem.

const Axe = require('axe');
const { Signale } = require('signale');

// works as expected
const logger = new Axe({ logger: new Signale(), level: 'debug' });

// how we have it set up in FE -- does not work as expected
const logger2 = new Axe({
  logger,
  level: 'debug'
});

console.log('NOT NESTED');
logger.debug('debug');
logger.info('info');
logger.warn('warn');
logger.error('error');

console.log('\nNESTED');
logger2.debug('debug');
logger2.info('info');
logger2.warn('warn');
logger2.error('error');

output:

NOT NESTED
⬤  debug     debug
ℹ  info      info
⚠  warning   warn
✖  error     error

NESTED
ℹ  info      info
⚠  warning   warn
✖  error     error

I would expect that since I set level debug on both loggers, that debug level would be logged on logger2, however, it is not.

titanism commented 2 years ago

Axe has been rewritten, this is resolved? If not let us know