[Discord Bot] 로거 생성 #3
1. 로거 생성
디스코드 봇을 만들다 보면 오류가 생겨 디버깅을 해야하는 경우가 생기는데, 보통 로그를 찍으며 디버깅하는 경우가 대부분이다. 이때 로그에 시간과, 목적이 나오는 것이 더 편리하므로 로거를 만들 것이다.
우선, 로거는 /src/utils/logger.ts
에 생성하고, 기능은 하나로 묶는 것이 더 사용하는데 편리하므로 Typescript
의 namespace
문법을 활용하여 만들 것이다.
또한 다양한 색상의 로그를 사용하는 것이 더 명확하므로 colors
라는 모듈을 설치하여 로그를 꾸밀 것이다.
Windows
1
npm i colors
MacOS
1
sudo npm i colors
colors
모듈을 설치하면 아래 코드를 사용하여 로거를 구현한다.
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
import "colors";
type Log = string | number | boolean | object;
export namespace Logger {
const timestamp = () => {
const format = new Intl.DateTimeFormat("ko", {
dateStyle: "medium",
timeStyle: "short",
}).format;
const date = new Date();
return format(date);
};
const print = (mode: string, ...logs: Log[]) => {
process.stdout.write(`[${mode} | ${timestamp()}] `);
for (const log of logs) {
if (["string", "number", "boolean"].includes(typeof log))
process.stdout.write(`${log} `);
else console.log("\n", log);
}
console.log();
};
export const info = (...logs: Log[]) => {
print("INFO".green, ...logs);
};
export const warn = (...logs: Log[]) => {
print("WARN!".bgYellow, ...logs);
};
export const error = (...logs: Log[]) => {
print("ERROR!".bgRed, ...logs);
};
}
This post is licensed under
CC BY 4.0
by the author.