-
Notifications
You must be signed in to change notification settings - Fork 3
/
Logger.ts
42 lines (35 loc) · 1.09 KB
/
Logger.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import { LoggerInterface, LogMessageInterface, Message } from '../contracts/LoggerInterface';
import { getUserMetadata } from '../frameworks/userMetadata';
/**
* @description Logger is just a very basic logging utility
*/
export class Logger implements LoggerInterface {
readonly userId: string;
readonly correlationId: string;
constructor() {
const { userId, correlationId } = getUserMetadata();
this.userId = userId;
this.correlationId = correlationId;
}
public log(message: Message) {
const createdLog = this.createLog({ message, level: 'INFO' });
console.log(createdLog);
}
public warn(message: Message) {
const createdLog = this.createLog({ message, level: 'WARN' });
console.warn(createdLog);
}
public error(message: Message) {
const createdLog = this.createLog({ message, level: 'ERROR' });
console.error(createdLog);
}
private createLog(log: LogMessageInterface) {
return {
message: log.message,
level: log.level,
timestamp: `${Date.now()}`,
userId: this.userId,
correlationId: this.correlationId
};
}
}