waterlog

logging utils

Usage no npm install needed!

<script type="module">
  import waterlog from 'https://cdn.skypack.dev/waterlog';
</script>

README

Waterlog

Easy logging utils

Menu

Technologies

Project is created with:

  • typescript 3.9.7
  • chai 4.2.0
  • mocha 8.1.0
  • ts-mocha 7.0.0
  • sinon 9.0.2
  • moment 2.27.0

Examples

Basic usage

import {ConsoleLoggerFactory, LogLevel} from 'waterlog';

const factory = new ConsoleLoggerFactory([
    { // Simple configuration
        name: 'logger',
        logger: LogLevel.Info
    },
    { // Configuration with namespace
        name: {
            namespace: 'namespace',
            loggerName: 'logger'
        },
        logger: LogLevel.Info
    },
    { // Configuration with only namespace
        name: {
            namespace: 'namespace2',
        },
        logger: LogLevel.Info
    }
]);

// Getting logger for namespace
const namespacedLogger = factory.getLogger({
    namespace: 'namespace2',
    loggerName: 'funnyLogger'
});
namespacedLogger.info('info message'); // 2020-08-06 13:45:54.600 namespace2.funnyLogger - INFO - info message

// Getting logger by name
const logger = factory.getLogger('logger');
logger.info('info message'); // 2020-08-06 13:45:54.600 logger - INFO - info message

// Getting logger by namespace and name
const fullnamedLogger = factory.getLogger({
    namespace: 'namespace',
    loggerName: 'logger'
});

fullnamedLogger.info('info message'); //2020-08-06 13:45:54.606 namespace.logger - INFO - info message


// Getting undefined logger
const defaultLogger = factory.getLogger('undefinedLogger');

defaultLogger.info('info message'); // Will not show info data at console
defaultLogger.warn('warn message'); // 2020-08-06 13:45:54.626 undefinedLogger - WARN - warn message

[!WARNING] Default logger log level is warning

Override default logger log level

import {ConsoleLoggerFactory, LogLevel} from 'waterlog';

const factory = new ConsoleLoggerFactory([
    { // Overriding configuration
        name: 'default',
        logger: LogLevel.All
    }
]);

const defaultLogger = factory.getLogger('undefinedLogger');

defaultLogger.debug('debug message'); // 2020-08-06 13:55:01.484 undefinedLogger - DEBUG - debug message
defaultLogger.info('info message'); // 2020-08-06 13:55:01.484 undefinedLogger - INFO - info message

Setup

To use this project, install it locally using npm:

$npm i waterlog