sonamu.config.ts์ logging ์ต์
์ผ๋ก ๋ก๊น
๋์์ ์ค์ ํ ์ ์์ต๋๋ค.
LogTape๋?
LogTape๋ TypeScript๋ฅผ ์ํ ๊ตฌ์กฐํ๋ ๋ก๊น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ๋จ์ํ ๋ฌธ์์ด ๋ก๊ทธ ๋์ , ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ก ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํฉ๋๋ค.์ผ๋ฐ ๋ก๊น vs ๊ตฌ์กฐํ๋ ๋ก๊น
์ผ๋ฐ ๋ก๊น (๋ฌธ์์ด):๊ตฌ์กฐํ๋ ๋ก๊น ์ ์ฅ์
- ๊ฒ์/ํํฐ๋ง ์ฉ์ด - ํน์ ์กฐ๊ฑด์ ๋ก๊ทธ๋ง ์ฝ๊ฒ ์ฐพ์ ์ ์์
- ๋ถ์ ๊ฐ๋ฅ - ๋ก๊ทธ ๋ฐ์ดํฐ๋ฅผ ์ง๊ณํ๊ณ ํต๊ณ๋ฅผ ๋ผ ์ ์์
- ํ์ ์์ - TypeScript๋ก ๋ก๊ทธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฒ์ฆ
- ์ ์ฐํ ์ถ๋ ฅ - ๊ฐ์ ๋ก๊ทธ๋ฅผ ์ฌ๋ฌ ํ์(์ฝ์, ํ์ผ, ์ธ๋ถ ์๋น์ค)์ผ๋ก ์ถ๋ ฅ
ํต์ฌ ๊ฐ๋
1. Sink (์ถ๋ ฅ ๋์)
๋ก๊ทธ๊ฐ ์ต์ข ์ ์ผ๋ก ๊ธฐ๋ก๋๋ ๊ณณ์ ๋๋ค.- ์ฝ์: ์ค์๊ฐ ๋ชจ๋ํฐ๋ง
- ํ์ผ: ์๊ตฌ ๋ณด๊ด
- Sentry: ์๋ฌ ์๋ฆผ
2. Filter (ํํฐ๋ง ์กฐ๊ฑด)
์ด๋ค ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํ ์ง ๊ฒฐ์ ํฉ๋๋ค.3. Logger (๋ก๊ฑฐ ์ค์ )
์นดํ ๊ณ ๋ฆฌ, Sink, Filter๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.Sink-Filter-Logger์ ๊ด๊ณ
์์:๋ก๊ทธ ๋ ๋ฒจ ์ ํ ๊ฐ์ด๋
๋ก๊ทธ ๋ ๋ฒจ์ ๋ก๊ทธ์ ์ค์๋๋ฅผ ๋ํ๋ ๋๋ค.๊ฐ ๋ ๋ฒจ์ ์๋ฏธ์ ์ฌ์ฉ ์๊ธฐ
1. debug- ์๋ฏธ: ์์ธํ ๋๋ฒ๊น ์ ๋ณด
- ์ฌ์ฉ ์๊ธฐ: ๊ฐ๋ฐ ์ค ๋ฌธ์ ์ถ์
- ์์: ํจ์ ํธ์ถ ์์, ๋ณ์ ๊ฐ
- ์๋ฏธ: ์ผ๋ฐ์ ์ธ ์ด์ ์ ๋ณด
- ์ฌ์ฉ ์๊ธฐ: ์ ์ ๋์ ํ์ธ
- ์์: HTTP ์์ฒญ/์๋ต, ์์ ์๋ฃ
- ์๋ฏธ: ๋ฌธ์ ๊ฐ๋ฅ์ฑ ๊ฒฝ๊ณ
- ์ฌ์ฉ ์๊ธฐ: ์๋ฌ๋ ์๋์ง๋ง ์ฃผ์ ํ์
- ์์: ๋๋ฆฐ ์๋ต, ์ฌ์๋ ๋ฐ์
- ์๋ฏธ: ์ฒ๋ฆฌ ๊ฐ๋ฅํ ์๋ฌ
- ์ฌ์ฉ ์๊ธฐ: ์์ธ ์ฒ๋ฆฌ, ๋ณต๊ตฌ ๊ฐ๋ฅํ ์คํจ
- ์์: ์ ํจ์ฑ ๊ฒ์ฆ ์คํจ, API ํธ์ถ ์คํจ
- ์๋ฏธ: ์น๋ช ์ ์ค๋ฅ (์๋ฒ ์ค๋จ ์์ค)
- ์ฌ์ฉ ์๊ธฐ: ๋ณต๊ตฌ ๋ถ๊ฐ๋ฅํ ์ฌ๊ฐํ ๋ฌธ์
- ์์: DB ์ฐ๊ฒฐ ์คํจ, ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ
ํ๊ฒฝ๋ณ ๋ ๋ฒจ ๊ถ์ฅ์ฌํญ
๋ ๋ฒจ ๊ณ์ธต ๊ตฌ์กฐ:
๋ฎ์ ๋ ๋ฒจ์ ์ค์ ํ๋ฉด ๊ทธ๋ณด๋ค ๋์ ๋ชจ๋ ๋ ๋ฒจ์ ๋ก๊ทธ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์:
lowestLevel: "warning"์ผ๋ก
์ค์ ํ๋ฉด warning, error, fatal์ด ๋ชจ๋ ์ถ๋ ฅ๋ฉ๋๋ค.์ ์ด๋ ๊ฒ ์ค๊ณ๋์๋?
1. ๊ธฐ๋ณธ๊ฐ์ด ์์ ํจ
Sonamu์ ๊ธฐ๋ณธ ์ค์ :- โ
/api๊ฒฝ๋ก๋ง ๋ก๊น โ ๋ถํ์ํ ์ ์ ํ์ผ ์์ฒญ ์ ์ธ - โ
info๋ ๋ฒจ โ ๋๋ฌด ๋ง์ง๋ ์ ์ง๋ ์๊ฒ - โ healthcheck ์ ์ธ โ ๋ชจ๋ํฐ๋ง ์์คํ ์ด ์์ฑํ๋ ๋ฐ๋ณต ์์ฒญ ์ ์ธ
2. ํ์ฅ ๊ฐ๋ฅํจ
๊ธฐ๋ณธ ์ค์ ์์ ์ปค์คํ ์ค์ ์ ์ถ๊ฐํ ์ ์์ต๋๋ค:3. ์ฑ๋ฅ ์ํฅ ์ต์ํ
Filter๋ฅผ ํตํด ๋ถํ์ํ ๋ก๊ทธ๋ฅผ ์กฐ๊ธฐ์ ์ฐจ๋จ:๊ธฐ๋ณธ ์ค์
logging ์ต์
์ ์๋ตํ๋ฉด ๊ธฐ๋ณธ ์ค์ ์ด ์๋ ์ ์ฉ๋ฉ๋๋ค.
- Fastify ์์ฒญ/์๋ต์ ์ฝ์์ ๋ก๊น
/api/*๊ฒฝ๋ก๋ง ๋ก๊น (healthcheck ์ ์ธ)- ์์ ํ์์ผ๋ก ์ถ๋ ฅ (ํ์์คํฌํ, ์นดํ ๊ณ ๋ฆฌ, ๋ ๋ฒจ)
logging ์ต์
๋ก๊น ๋นํ์ฑํ
fastifyCategory
Fastify HTTP ๋ก๊น ์ ์ฌ์ฉํ ์นดํ ๊ณ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. ํ์ :readonly string[]
๊ธฐ๋ณธ๊ฐ: ["fastify"]
["a", "b", "c"] ๋ฐฐ์ด๋ก ๊ณ์ธต ๊ตฌ์กฐ ํํ
๋ก๊ทธ ์ถ๋ ฅ ์์:
sinks
๋ก๊ทธ๋ฅผ ์ถ๋ ฅํ ๋์(sink)์ ์ถ๊ฐํฉ๋๋ค. ํ์ :Record<string, Sink>
filters
๋ก๊ทธ๋ฅผ ์ ํ์ ์ผ๋ก ํํฐ๋งํ๋ ์กฐ๊ฑด์ ์ถ๊ฐํฉ๋๋ค. ํ์ :Record<string, FilterLike>
loggers
์นดํ ๊ณ ๋ฆฌ๋ณ๋ก ์ด๋ค sink์ filter๋ฅผ ์ฌ์ฉํ ์ง ์ค์ ํฉ๋๋ค. ํ์ :LoggerConfig[]
fastifyCategory์ ์ค์ ๋ ์นดํ
๊ณ ๋ฆฌ์ logger ์ค์ ์ด ์์ผ๋ฉด, Sonamu๋ ๊ธฐ๋ณธ logger๋ฅผ ์ถ๊ฐํ์ง
์์ต๋๋ค.๊ธฐ๋ณธ ์์
์ต์ ์ค์ (๊ธฐ๋ณธ๊ฐ ์ฌ์ฉ)
๋ก๊น ๋นํ์ฑํ
์ปค์คํ ์นดํ ๊ณ ๋ฆฌ
๊ธฐ๋ณธ ๋์ ์์ธ
Sonamu๋ ๋ค์๊ณผ ๊ฐ์ด ์๋์ผ๋ก ๋ก๊น ์ ์ค์ ํฉ๋๋ค:1. Fastify Sink ์๋ ์์ฑ
- HTTP ๋ฉ์๋์ ์๋ต ์ฝ๋ ํ์:
[GET:200] - ์์ฒญ URL ํ์:
/api/user/list - ์์์ผ๋ก ๋ ๋ฒจ ๊ตฌ๋ถ
2. Fastify Filter ์๋ ์์ฑ
3. Logger ์๋ ์์ฑ
4. Meta Logger ๋นํ์ฑํ
๋ก๊ทธ ๋ ๋ฒจ
LogTape์ ๋ก๊ทธ ๋ ๋ฒจ (๋ฎ์ ์์):- debug - ์์ธํ ๋๋ฒ๊น ์ ๋ณด
- info - ์ผ๋ฐ ์ ๋ณด (๊ธฐ๋ณธ๊ฐ)
- warning - ๊ฒฝ๊ณ
- error - ์๋ฌ
- fatal - ์น๋ช ์ ์ค๋ฅ
์ค์ ์์
- ๊ฐ๋ฐ
- ์คํ ์ด์ง
- ํ๋ก๋์
debug๋ ๋ฒจ๋ก ๋ชจ๋ ์์ธ ์ ๋ณด ํ์ธ- ์ฝ์ ์ถ๋ ฅ์ผ๋ก ์ค์๊ฐ ํ์ธ
- ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ
ํ์ผ ๋ก๊น ์ถ๊ฐ
ํ๋ก๋์ ์ค์
Fastify ๋ก๊น ์๋ ํตํฉ
Sonamu๋@logtape/fastify ํจํค์ง๋ก Fastify ๋ก๊น
์ ์๋ ํตํฉํฉ๋๋ค.
- HTTP ์์ฒญ (method, URL)
- ์๋ต ์ฝ๋
- ์๋ต ์๊ฐ
- ์๋ฌ ์คํํธ๋ ์ด์ค
์ฃผ์์ฌํญ
1. ๊ธฐ๋ณธ sink/filter ๋ฎ์ด์ฐ๊ธฐ
2. ๋ก๊น ๋นํ์ฑํ ์ logger ์ต์
3. ์นดํ ๊ณ ๋ฆฌ ์ผ๊ด์ฑ
๋ค์ ๋จ๊ณ
Sinks & Filters
์ปค์คํ
Sink์ Filter๋ก ๋ก๊ทธ ์ถ๋ ฅ์ ์ธ๋ฐํ๊ฒ ์ ์ดํ์ธ์
์นดํ ๊ณ ๋ฆฌ ๋ก๊น
์นดํ
๊ณ ๋ฆฌ ์์คํ
์ผ๋ก ๋ก๊ทธ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ์ธ์
Fastify ๋ก๊น
HTTP ์์ฒญ/์๋ต ๋ก๊น
์ ์ปค์คํฐ๋ง์ด์งํ์ธ์
LogTape ๋ฌธ์
LogTape ๊ณต์ ๋ฌธ์์์ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ์์๋ณด์ธ์