1.2.61 • Published 3 years ago
@flashcoffee/fclogger v1.2.61
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