eventLog
앱 내에서 발생하는 다양한 이벤트를 로깅하는 함수입니다. 디버깅, 정보 제공, 경고, 에러 등 다양한 유형의 로그를 기록할 수 있습니다. 샌드박스 환경에서는 콘솔에 로그가 출력되고, 앱인토스 환경에서는 로그 시스템에 기록됩니다.
시그니처
import { eventLog } from '@apps-in-toss/web-framework';
type Primitive = string | number | boolean | null | undefined | symbol;
interface EventLogParams {
log_name: string;
log_type: 'debug' | 'info' | 'warn' | 'error' | 'event' | 'screen' | 'impression' | 'click' | 'popup';
params: Record<string, Primitive>;
}
declare function eventLog(params: EventLogParams): Promise<void>;
파라미터
| 이름 | 타입 | 필수 | 설명 |
|---|---|---|---|
log_name | string | ✓ | 로그의 이름. |
log_type | 'debug' | 'info' | 'warn' | 'error' | 'event' | 'screen' | 'impression' | 'click' | 'popup' | ✓ | 로그의 유형. |
params | Record<string, Primitive> | ✓ | 로그에 포함할 추가 매개변수 객체. |
log_type 값 가이드
| 값 | 용도 |
|---|---|
'event' | 사용자 액션 이벤트 (기본값) |
'click' | 클릭 인터랙션 |
'screen' | 화면 진입 |
'impression' | 컴포넌트 노출 |
'debug' | 개발 중 디버깅 |
'info' | 정보성 로그 |
'warn' | 경고 |
'error' | 에러 |
'popup' | 팝업 노출 |
반환값
Promise<void>— 로그 기록이 완료되면 resolve합니다.
권한
권한이 필요하지 않습니다 — eventLog는 별도의 PermissionName에 바인딩되지 않습니다.
예제
최소 예제
import { eventLog } from '@apps-in-toss/web-framework';
await eventLog({
log_name: 'button_click',
log_type: 'click',
params: {},
});
실전 예제 — 화면 진입 로깅
import { eventLog } from '@apps-in-toss/web-framework';
import { useEffect } from 'react';
function ProductPage({ productId }: { productId: string }) {
useEffect(() => {
eventLog({
log_name: 'product_screen_view',
log_type: 'screen',
params: {
product_id: productId,
},
});
}, [productId]);
return <main>{/* 상품 페이지 */}</main>;
}
실전 예제 — 에러 로깅
import { eventLog } from '@apps-in-toss/web-framework';
async function fetchData(url: string) {
try {
const response = await fetch(url);
return await response.json();
} catch (error) {
await eventLog({
log_name: 'fetch_error',
log_type: 'error',
params: {
url,
message: error instanceof Error ? error.message : String(error),
},
});
throw error;
}
}
직접 실행해 보기
sdk-example의 Analytics 페이지에서 eventLog를 직접 호출하고 결과를 확인할 수 있습니다.
관련 API
Analytics.click— 사용자 클릭 이벤트를 기록합니다.Analytics.impression— UI 컴포넌트 노출 이벤트를 기록합니다.Analytics.screen— 화면 진입 이벤트를 기록합니다.appsInTossEvent.addEventListener— 앱인토스 플랫폼 이벤트를 구독합니다.graniteEvent.addEventListener— Granite 이벤트를 구독합니다.
관련 가이드
외부 참조
@apps-in-toss/web-framework— 상위 SDK 패키지.eventLog는 내부적으로@apps-in-toss/web-bridge에서 가져옵니다.