0.0.1 • Published 5 years ago

@project-reporter/cloud-logger v0.0.1

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

Project Reporter - Cloud Logger

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

Installation

Using NPM.

npm i @project-reporter/cloud-logger

Using Yarn.

yarn add @project-reporter/cloud-logger

Usage Example

Basic usage

import { CloudLogger } from '@project-reporter/cloud-logger';

const logger = new CloudLogger();

logger.setUrl('some-logging-service.com');

logger.info('My Message');

Request headers

import { CloudLogger } from '@project-reporter/cloud-logger';

const logger = new CloudLogger();

logger.setUrl('some-logging-service.com');
logger.addHeader({ name: 'authorization', value: 'abc123' });

logger.info('My Message');

Format function

import { CloudLogger } from '@project-reporter/cloud-logger';

const logger = new CloudLogger();

logger.setUrl('some-logging-service.com');
logger.setFormat((level, timestamp, message, ...meta) => {
  return `[${timestamp}] ${level}: ${message} ${meta.join(' ')}`;
});

logger.info('My Message');

More Advanced Usage

Evironment based logging

import { Reporter } from '@project-reporter/core';
import { CloudLogger } from '@project-reporter/cloud-logger';

const reporter = new Reporter();

// development only logger.
reporter.addLogger(
  new CloudLogger().setUrl('dev-log-service.com'),
  '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 CloudLogger().setUrl('prod-log-service.com'),
  '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 { CloudLogger } from '@project-reporter/cloud-logger';

const reporter = new Reporter();

reporter.addLogger(new CloudLogger().setUrl('service1.com'));

reporter.addLogger(new CloudLogger().setUrl('service2.com'));

reporter.info('My Message'); // message will be sent to both servers.

Contributing

See Contribution Guidelines