Supabase에서 로그 추적은 어떻게 설정하나요?
_____Q1: Supabase에서 기본적으로 로그 추적이 가능한가요?
네, Supabase는 PostgreSQL 기반으로 동작하며, PostgreSQL 내장 로깅 기능을 활용할 수 있습니다. 또한 Supabase Studio 내에서 쿼리 로그 및 요청 로그를 확인할 수 있습니다.
Q2: PostgreSQL 로그를 활성화하려면 어떻게 해야 하나요?
Supabase에서는 직접 PostgreSQL 서버 설정에 접근할 수 없지만, Supabase 프로젝트 설정 내에서 로그 레벨이나 쿼리 기록 등 일부 설정을 조정할 수 있습니다. 자세한 설정은 Supabase 문서 및 관리 도구를 참조하세요.
Q3: API 요청 및 인증 관련 로그는 어디서 확인할 수 있나요?
Supabase Studio의 "Logs" 탭에서 인증, API 요청 및 데이터베이스 쿼리 로그를 실시간으로 확인할 수 있습니다. 로그 필터링 기능을 사용하여 필요한 로그만 추적할 수 있습니다.
Q4: 커스텀 로깅 설정이나 외부 모니터링 툴을 연동할 수 있나요?
네, Supabase 웹훅(Webhooks) 또는 리얼타임 기능을 활용해 외부 로깅/모니터링 도구(e.g., Datadog, Logflare)와 연동할 수 있습니다. 이를 통해 더 상세한 트랜잭션, 성능 로그를 수집하고 분석할 수 있습니다.
Q5: 쿼리 성능 모니터링을 위한 로그 설정은 어떻게 하나요?
Q6: 로그 데이터를 장기 보관할 수 있나요?
Supabase 자체 로그는 일정 기간 후 자동으로 삭제될 수 있으니, 별도 로그 보관이 필요하면 외부 저장소(예: S3, 로그 관리 서비스)로 로그를 전송하는 방식을 추천합니다.
---
요약
- Supabase Studio 내 "Logs" 탭에서 기본 API, 인증, 쿼리 로그 확인 가능
- PostgreSQL 내장 로깅 활용 가능하나 직접 설정은 제한적
- 외부 로깅·모니터링 도구와 연동 가능 (웹훅, 리얼타임 활용)
- 쿼리 성능 모니터링 위해 pg_stat_statements 사용 고려
- 장기 로그 보관은 별도 저장소 활용 권장
자세한 설정 방법은 Supabase 공식 문서의 [Logging](https://supabase.com/docs/guides/platform/logging) 섹션을 참고하세요.
Supabase는 PostgreSQL을 기반으로 하므로, PostgreSQL의 기능을 활용하여 logs를 추적하고 수집할 수 있습니다.
아래 단계별로 설명하겠습니다.
1. Supabase 프로젝트 생성 Supabase 대시보드에 로그인한 후, 새로운 프로젝트를 생성합니다.
기존 프로젝트가 있다면 그 프로젝트로 이동합니다.
2. 데이터베이스에 로그 테이블 생성 로그를 기록할 테이블을 생성합니다.
Supabase SQL Editor에서 다음과 같은 명령어를 사용하여 간단한 로그 테이블을 만들 수 있습니다.
```sql CREATE TABLE logs ( id SERIAL PRIMARY KEY, action VARCHAR NOT NULL, user_id UUID, created_at TIMESTAMP WITH TIME ZONE DEFAULT timezone('utc'::text, now()) ); ```
3. 트리거 및 함수 설정 로그를 자동으로 기록하기 위해 PostgreSQL 트리거와 함수를 설정할 수 있습니다.
예를 들어, 특정 테이블에 새로운 데이터가 삽입될 때마다 로그를 남기고 싶다면, 다음과 같은 함수를 작성할 수 있습니다.
```sql CREATE OR REPLACE FUNCTION log_activity() RETURNS TRIGGER AS $$ BEGIN INSERT INTO logs(action, user_id) VALUES ('Insert on ' || TG_TABLE_NAME, NEW.user_id); RETURN NEW; END; $$ LANGUAGE plpgsql; ```
4. 트리거 만들기 이제 이 함수를 호출하는 트리거를 만들 차례입니다.
다음과 같이 특정 테이블에 대한 INSERT 이벤트에 대해 트리거를 설정할 수 있습니다.
```sql CREATE TRIGGER log_insert AFTER INSERT ON your_table_name FOR EACH ROW EXECUTE FUNCTION log_activity(); ```
5. 로그 조회 및 분석 이제 로그 테이블에 기록된 로그를 조회할 수 있습니다.
SQL Editor에서 다음과 같은 쿼리를 사용하여 로그를 확인할 수 있습니다.
```sql SELECT * FROM logs ORDER BY created_at DESC; ```
6. 외부 서비스와 통합 (선택 사항) 더 정교한 로그 관리가 필요하다면, Supabase와 통합할 수 있는 외부 로그 관리 도구(예: Sentry, Loggly 등)를 고려할 수 있습니다.
이런 도구들은 로그를 수집하고 분석하는 데 도움을 줄 수 있습니다.
7. 실시간 데이터베이스 구독 Supabase의 실시간 기능을 활용하면 로그 테이블의 변화를 클라이언트 애플리케이션으로 직접 푸시할 수 있습니다.
이를 통해 사용자에게 로그 이벤트를 실시간으로 보여줄 수 있습니다.
마무리 위와 같은 방법으로 Supabase에서 로그 추적을 설정할 수 있습니다.
필요에 따라 설정을 조정하고, 로그를 통해 데이터베이스와 관련된 활동을 보다 효율적으로 모니터링하고 분석할 수 있습니다.
작성자:
정지호 [비회원]
| 작성일자: 1년 전
2025-03-04 09:11:05
조회수: 1358 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 1358 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.