피드로 돌아가기
Dev.toBackend
원문 읽기
log.Println()의 기본 Prefix 동작 이해를 통한 중복 Timestamp 제거
Go Beginner Mistake #1: When `log.Println()` Made Me Question `time.Now().Format()`
AI 요약
Context
Go 언어로 Net-Cat 프로젝트 구현 중 사용자 메시지에 커스텀 Timestamp를 적용하려는 시도. log.Println() 사용 시 개발자가 정의한 포맷 외에 라이브러리 기본 값이 중복 출력되는 현상 발생.
Technical Solution
log패키지의 기본 설계 의도인 Structured Application Logging 메커니즘 파악log.LstdFlags(log.Ldate | log.Ltime) 설정으로 인한 자동 날짜 및 시간 접두사 생성 확인- 출력 목적에 따른
fmt패키지와log패키지의 역할 분리 설계 - 사용자 인터페이스용 출력은 제어권이 완전한
fmt.Println()으로 대체 - 시스템 진단용 로그는
log.SetFlags(0)를 통한 Prefix 제어 혹은 기본 설정 유지 전략 채택
실천 포인트
- 출력 결과의 이상 징후 발견 시 로직 수정 전 사용 라이브러리의 Default Behavior 확인 - User-facing 메시지와 System-facing 로그의 출력 패키지를 엄격히 구분하여 사용 - `pkg.go.dev` 공식 문서를 통한 패키지별 기본 동작 방식 및 Flag 설정 값 검토