--- title: logger --- `logger` 옵션은 컴파일 중 React 컴파일러 이벤트에 대한 커스텀 로깅을 제공합니다. ```js { logger: { logEvent(filename, event) { console.log(`[Compiler] ${event.kind}: ${filename}`); } } } ``` --- ## 레퍼런스 {/*reference*/} ### `logger` {/*logger*/} 컴파일러 동작을 추적하고 문제를 디버깅하기 위한 커스텀 로깅을 설정합니다. #### 타입 {/*type*/} ``` { logEvent: (filename: string | null, event: LoggerEvent) => void; } | null ``` #### 기본값 {/*default-value*/} `null` #### 메서드 {/*methods*/} - **`logEvent`**: 각 컴파일러 이벤트에 대해 파일명, 이벤트 세부 정보와 함께 호출됩니다. #### 이벤트 타입 {/*event-types*/} - **`CompileSuccess`**: 함수가 성공적으로 컴파일됨. - **`CompileError`**: 오류로 인해 함수가 건너뛰어짐. - **`CompileDiagnostic`**: 치명적이지 않은 진단 정보. - **`CompileSkip`**: 다른 이유로 함수가 건너뛰어짐. - **`PipelineError`**: 예기치 않은 컴파일 오류. - **`Timing`**: 성능 타이밍 정보. #### 주의 사항 {/*caveats*/} - 이벤트 구조는 버전 간에 변경될 수 있습니다. - 대규모 코드베이스는 많은 로그 항목을 생성합니다. --- ## 사용법 {/*usage*/} ### 기본 로깅 {/*basic-logging*/} 컴파일 성공과 실패를 추적합니다. ```js { logger: { logEvent(filename, event) { switch (event.kind) { case 'CompileSuccess': { console.log(`✅ Compiled: ${filename}`); break; } case 'CompileError': { console.log(`❌ Skipped: ${filename}`); break; } default: {} } } } } ``` ### 상세 오류 로깅 {/*detailed-error-logging*/} 컴파일 실패에 대한 구체적인 정보를 확인합니다. ```js { 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); } } } } } ```