1.2.61 • Published 3 years ago

@flashcoffee/fclogger v1.2.61

Weekly downloads
-
License
ISC
Repository
gitlab
Last release
3 years ago

fclogger

Installation

$ yarn add @flashcoffee/fclogger

Setup

Set required environment variable for credentials

SERVICE_NAME=order-service-dev-th

Usage

Simple Log (With Level printed)

import {log} from '@flashcoffee/fclogger';

log.info('endpoint fired'); // [INFO] endpoint fired
log.info('payload:', {foo: 'bar'}); // [INFO] payload: { "foo": "bar" }
log.error('error occur:', err); // [ERROR] error occur: error name { "stack": "Error: error name" }

Formatted {"message"} Log (example: Datadog)

import {log} from '@flashcoffee/fclogger';

log.dd.info({
  eventName: 'some-event',
  module: 'order-service',
  data: {foo: 'bar'},
  serviceVersion: '1.0.0',
  appVersion: '2.25.3',
});

// output
// { "appVersion": "2.25.3", "data": { "foo": "bar" }, "dd": { "service": "order-service-dev-th", "span_id": "xx", "trace_id": "xx" }, "eventName": "some-event", "level": "info", "message": "[BE] order-service-dev-th: some-event", "module": "order-service", "service": "order-service-dev-th", "serviceVersion": "1.0.0" }

log.dd.error({
  eventName: 'some-event',
  module: 'order-service',
  data: {foo: 'bar'},
  errorObject: {reason: 'why'}
  serviceVersion: '1.0.0',
  appVersion: '2.25.3',
});

// output
// { "appVersion": "2.25.3", "data": { "foo": "bar" }, "dd": { "service": "order-service-dev-th", "span_id": "xx", "trace_id": "xx" }, "errorObject": "{\"reason\":\"why\"}", "eventName": "some-event", "level": "error", "message": "[BE] order-service-dev-th: some-event", "module": "order-service", "service": "order-service-dev-th", "serviceVersion": "1.0.0" }

JSON Log (example: Plain, DDMetrics)

import {log} from '@flashcoffee/fclogger';

// Plain JSON
log.json({
  foo: 'bar',
  zoo: 'bir'
});

// output
// { "foo": "bar", "zoo": "bir" }

// DD Metrics Purpose
log.json({
  e: 1658977035.238,
  m: 'fc.order.creation',
  t: [
    'status:CREATED',
    'country:th'
  ],
  v: 1 
});

// output:
// { "e": 1658977035.238, "m": "fc.order.creation", "t": [ "status:CREATED", "country:th" ], "v": 1 }

NestJS Module Approach

import {LoggerModule, Logger} from '@flashcoffee/fclogger';

@Module({
  imports: [LoggerModule],
  controllers: [SomeController],
  providers: [SomeService, RedisRepository],
})
class SomeModule {}

@Injectable()
export class SomeService {
  constructor(
    private readonly log: Logger,
    private readonly redis: RedisRepository
  ) {}

  public func() {
    // simple
    this.log.info('payload:', {foo: 'bar'});

    // datadog
    this.log.dd.info({
      eventName: 'some-event',
      module: 'order-service',
      data: {foo: 'bar'},
      serviceVersion: '1.0.0',
      appVersion: '2.25.3',
    });

    // plain json
    this.log.json({
      e: 1658977035.238,
      m: 'fc.order.creation',
      t: [
        'status:CREATED',
        'country:th'
      ],
      v: 1 
    });
  }
}

@Injectable()
export class RedisRepository {
  constructor(private readonly log: Logger) {}

  public getCache(key: string) {
    // simple
    this.log.info(`attempt to get cache ${key}`);
  }
}
1.2.61

3 years ago

1.2.62-alpha.0

3 years ago

1.2.61-alpha.9

3 years ago

1.2.61-alpha.3

3 years ago

1.2.55

3 years ago

1.2.52-alpha.6

3 years ago

1.2.52-alpha.5

3 years ago

1.2.51-alpha.1

3 years ago

1.2.51-alpha.0

3 years ago