0.0.1 • Published 5 years ago

@project-reporter/console-logger v0.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
5 years ago

Project Reporter - Console Logger

This package contains the default implementation of the console logger if for some reason this implementation doesn't suit your use case you can use the IConsoleLogger from the core package to build your own implementation.

Installation

Using NPM.

npm i @project-reporter/console-logger

Using Yarn.

yarn add @project-reporter/console-logger

Usage Example

Basic usage

import { ConsoleLogger } from '@project-reporter/console-logger';

const logger = new ConsoleLogger();

logger.info('My Message');

Using Colors

import { ConsoleLogger } from '@project-reporter/console-logger';

const logger = new ConsoleLogger();

logger.setColorize(true); // it's true by default.

logger.info('My Message');

Custom encoding

import { ConsoleLogger } from '@project-reporter/console-logger';

const logger = new ConsoleLogger();

logger.setEncoding('UTF-16'); // UTF-8 by default.

logger.info('My Message');

Format function

import { ConsoleLogger } from '@project-reporter/console-logger';

const logger = new ConsoleLogger();

logger.setFormat((level, timestamp, message, ...meta) => {
  return `[${timestamp}] ${level}: ${message} ${meta.join(' ')}`;
});

logger.info('My Message');

More Advanced Usage

Evironment based logging, this is just an example, DONOT use console logging in production.

import { Reporter } from '@project-reporter/core';
import { ConsoleLogger } from '@project-reporter/console-logger';

const reporter = new Reporter();

// development only logger.
reporter.addLogger(
  new ConsoleLogger().setColorize(true),
  'DEVELOPMENT_LOGGER', // this name is an identifier.
  'development' // notice that the third parameter is the name of the environemt.
);

// production only logger.
reporter.addLogger(
  new ConsoleLogger().setColorize(false),
  'PRODUCTION_LOGGER', // this name is an identifier.
  'production' // notice that the third parameter is the name of the environemt.
);

reporter.info('My Message');

Multiple loggers

import { Reporter } from '@project-reporter/core';
import { ConsoleLogger } from '@project-reporter/console-logger';

const reporter = new Reporter();

reporter.addLogger(new ConsoleLogger().setEncoding('UTF-8'));

reporter.addLogger(new ConsoleLogger().setEncoding('UTF-16'));

reporter.info('My Message'); // message will be printed in both UTF-8 and UTF-16 encodings.

Contributing

See Contribution Guidelines