logger
logger ์ต์
์ ์ปดํ์ผ ์ค React ์ปดํ์ผ๋ฌ ์ด๋ฒคํธ์ ๋ํ ์ปค์คํ
๋ก๊น
์ ์ ๊ณตํฉ๋๋ค.
{
logger: {
logEvent(filename, event) {
console.log(`[Compiler] ${event.kind}: ${filename}`);
}
}
}๋ ํผ๋ฐ์ค
logger
์ปดํ์ผ๋ฌ ๋์์ ์ถ์ ํ๊ณ ๋ฌธ์ ๋ฅผ ๋๋ฒ๊น ํ๊ธฐ ์ํ ์ปค์คํ ๋ก๊น ์ ์ค์ ํฉ๋๋ค.
ํ์
{
logEvent: (filename: string | null, event: LoggerEvent) => void;
} | null๊ธฐ๋ณธ๊ฐ
null
๋ฉ์๋
logEvent: ๊ฐ ์ปดํ์ผ๋ฌ ์ด๋ฒคํธ์ ๋ํด ํ์ผ๋ช , ์ด๋ฒคํธ ์ธ๋ถ ์ ๋ณด์ ํจ๊ป ํธ์ถ๋ฉ๋๋ค.
์ด๋ฒคํธ ํ์
CompileSuccess: ํจ์๊ฐ ์ฑ๊ณต์ ์ผ๋ก ์ปดํ์ผ๋จ.CompileError: ์ค๋ฅ๋ก ์ธํด ํจ์๊ฐ ๊ฑด๋๋ฐ์ด์ง.CompileDiagnostic: ์น๋ช ์ ์ด์ง ์์ ์ง๋จ ์ ๋ณด.CompileSkip: ๋ค๋ฅธ ์ด์ ๋ก ํจ์๊ฐ ๊ฑด๋๋ฐ์ด์ง.PipelineError: ์๊ธฐ์น ์์ ์ปดํ์ผ ์ค๋ฅ.Timing: ์ฑ๋ฅ ํ์ด๋ฐ ์ ๋ณด.
์ฃผ์ ์ฌํญ
- ์ด๋ฒคํธ ๊ตฌ์กฐ๋ ๋ฒ์ ๊ฐ์ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
- ๋๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค๋ ๋ง์ ๋ก๊ทธ ํญ๋ชฉ์ ์์ฑํฉ๋๋ค.
์ฌ์ฉ๋ฒ
๊ธฐ๋ณธ ๋ก๊น
์ปดํ์ผ ์ฑ๊ณต๊ณผ ์คํจ๋ฅผ ์ถ์ ํฉ๋๋ค.
{
logger: {
logEvent(filename, event) {
switch (event.kind) {
case 'CompileSuccess': {
console.log(`โ
Compiled: ${filename}`);
break;
}
case 'CompileError': {
console.log(`โ Skipped: ${filename}`);
break;
}
default: {}
}
}
}
}์์ธ ์ค๋ฅ ๋ก๊น
์ปดํ์ผ ์คํจ์ ๋ํ ๊ตฌ์ฒด์ ์ธ ์ ๋ณด๋ฅผ ํ์ธํฉ๋๋ค.
{
logger: {
logEvent(filename, event) {
if (event.kind === 'CompileError') {
console.error(`\nCompilation failed: ${filename}`);
console.error(`Reason: ${event.detail.reason}`);
if (event.detail.description) {
console.error(`Details: ${event.detail.description}`);
}
if (event.detail.loc) {
const { line, column } = event.detail.loc.start;
console.error(`Location: Line ${line}, Column ${column}`);
}
if (event.detail.suggestions) {
console.error('Suggestions:', event.detail.suggestions);
}
}
}
}
}