@andgohq/universal-logger

Logger for browser, nodejs and electron

Usage no npm install needed!

<script type="module">
  import andgohqUniversalLogger from 'https://cdn.skypack.dev/@andgohq/universal-logger';
</script>

README

universal-logger

Logger for brower, nodejs and electron.

Install

npm install @andgohq/universal-logger

Usage examples

import { setLogLevel, initDatadog, logFactory, setContext, setMasks, setMaskFunc } from '@andgohq/universal-logger';

// Set output log level (default: LOG_LEVEL environment variable or 'debug')
// log level: debug, fata, error, warn, info
setLogLevel('info');

// Set mask keys for sensitive data
setMasks(['maskedKey']);

// Set mask function
setMaskFunc((s: string) => `${s.substr(0.8)}***`);

// Logger usage
const logger = logFactory('Main');

// Support methods:
// - logger.debug -> hidden outputs (should turn on the verbose flag on dev console to see logs)
// - logger.fatal -> outputs with red error icon and stacktrace
// - logger.error -> outputs with red error icon and stacktrace
// - logger.warn -> outputs with yellow warn icon
// - logger.info -> outputs with regular style

// Optionally you can add a context
// setContext({ user: 'test1@example.com' });

logger.info('Message text');
logger.info({ param1: 'value1', maskedKey: 'sensitive data...' }, 'Message text');
logger.info({ param1: 'value1' }, 'Message Text %s %s', 'REPLACE STRING1', 'REPLACE STRING2');
logger.error(new Error('Something wrong'), 'optional error message: %2', 'REPLACE STRING');

// Child logger
const childLogger = logger.child({ method: 'child' });
childLogger.info('Hello');

Develop

npm install
npm run dev
npm run -s dev:nodejs | jq .

Build

npm run build