피드로 돌아가기
Go Beginner Mistake #1: When `log.Println()` Made Me Question `time.Now().Format()`
Dev.toDev.to
Backend

log.Println()의 기본 Prefix 동작 이해를 통한 중복 Timestamp 제거

Go Beginner Mistake #1: When `log.Println()` Made Me Question `time.Now().Format()`

perez odiyo2026년 6월 5일5beginner

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 설정 값 검토

원문 읽기