와탭(WhaTap)에서 로그 모니터링 기능을 효율적으로 활용하기 위해서는 **정형화된 로그 포맷(Structured Logging)**을 사용하는 것이 가장 중요합니다. 와탭은 기본적으로 텍스트 로그를 수집하지만, 분석과 알림 설정을 용이하게 하려면 JSON 포맷이나 일정한 패턴의 텍스트 포맷을 권장합니다.
와탭 모니터링에 최적화된 로그 포맷 구성 요소를 정리해 드립니다.
1. 권장 로그 포맷: JSON (가장 추천)
JSON 포맷은 와탭의 로그 검색 및 통계 분석 기능을 100% 활용할 수 있게 해줍니다. 와탭이 자동으로 필드를 파싱하여 인덱싱하기 때문입니다.
[JSON 예시]
{
"timestamp": "2023-10-27T10:20:35.123Z",
"level": "ERROR",
"service_name": "order-api",
"trace_id": "W1234567890",
"span_id": "S12345",
"user_id": "user_01",
"method": "POST",
"url": "/api/v1/orders",
"status_code": 500,
"message": "Order processing failed",
"stack_trace": "java.lang.NullPointerException: ..."
}
2. 필수 및 권장 필드 구성
로그에 포함시켜야 할 핵심 데이터들입니다.
| 필드명 | 중요도 | 설명 | 비고 |
| timestamp | 필수 | 로그 발생 시간 | ISO 8601 포맷 추천 (yyyy-MM-dd’T’HH:mm:ss.SSSZ) |
| level | 필수 | 로그 레벨 (INFO, WARN, ERROR 등) | 와탭 대시보드에서 레벨별 필터링 시 사용 |
| service_name | 권장 | 마이크로서비스 환경에서 서비스 식별자 | 어떤 서버/앱에서 발생했는지 구분 |
| trace_id | 핵심 | 와탭 APM과 연동되는 트랜잭션 ID | APM 상세 보기와 로그를 연결하는 고리 |
| message | 필수 | 실제 로그 내용 | 검색의 핵심 대상 |
| class / method | 권장 | 로그가 발생한 소스 코드 위치 | 트러블슈팅 속도 향상 |
| elapsed_time | 선택 | 처리 소요 시간 | 성능 저하 구간 파악 용이 |
3. 와탭 APM-로그 연동 (Trace ID 포함)
와탭의 가장 강력한 기능은 **”에러 로그를 보고 해당 시점의 트랜잭션 트레이스로 바로 이동”**하는 것입니다. 이를 위해 로그에 반드시 와탭 Trace ID를 심어야 합니다.
-
Java (Logback) 예시:
와탭 에이전트가 제공하는 MDC 필드를 활용하여 설정합니다.Xml<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg [x-wt-trace-id:%X{wtTraceId}]%n</pattern>
4. 일반 텍스트 포맷 사용 시 (Pattern)
JSON이 어렵다면, 규칙적인 구분자를 사용하는 텍스트 포맷을 사용해야 와탭에서 파싱 규칙(Parsing Rule)을 정의하기 쉽습니다.
[권장 패턴]
[시간] [레벨] [서비스명] [TraceID] [클래스.메서드] – 메시지
[예시]
2023-10-27 14:00:01 INFO order-service [W987654321] c.s.order.OrderService – Order created successfully
5. 와탭 로그 설정을 위한 팁

-
로그 파일 위치 지정: 와탭 에이전트 설정(whatap.conf)에서 로그 파일을 수집할 경로를 정확히 지정해야 합니다.
Properties# whatap.conf 예시 weaving=log4j-2.17 # 사용 중인 로깅 라이브러리 설정 log_root=/app/logs/ log_files=application.log, access.log -
멀티라인 로그 처리: Stack Trace처럼 여러 줄로 발생하는 로그는 하나의 이벤트로 묶이도록 와탭 콘솔에서 로그 파싱 설정을 확인해야 합니다. (보통 날짜로 시작하는 줄을 새로운 로그의 시작으로 인식하게 설정)
-
민감 정보 마스킹: 개인정보(전화번호, 계좌번호 등)는 로그 출력 단계에서 마스킹 처리를 하는 것이 보안상 안전합니다.
요약
와탭에서 최고 효율을 내려면 **”JSON 포맷”**을 사용하고, 반드시 **”Trace ID”**를 로그 필드에 포함시키세요. 이렇게 하면 장애 발생 시 로그에서 클릭 한 번으로 상세 성능 지표까지 파악할 수 있습니다.