Skip to content

log

Go 언어 표준 라이브러리 log 패키지는 간단한 로깅을 구현합니다.

go
func main() {
   log.Println("로그")
   log.Panicln("panic 로그")
   log.Fatalln("오류 로그")
}

Fatal 은 로그 정보를 출력한 후 os.exit(1) 을 호출하며, panic 은 panic 을 발생시킵니다.

접두사

go
func (l *Logger) Prefix() string //접두사 가져오기

func (l *Logger) SetPrefix(prefix string) //접두사 설정

예시

go
func main() {
  log.SetPrefix("[main]")
  log.Println("로그")
  log.Panicln("panic 로그")
}

Flag

메서드

go
func (l *Logger) Flags() int //가져오기

func (l *Logger) SetFlags(flag int) //설정

상수

go
const (
   Ldate         = 1 << iota     // 날짜
   Ltime                         // 시간
   Lmicroseconds                 // 마이크로초
   Llongfile                     // 전체 파일 이름
   Lshortfile                    // 짧은 파일 이름
   LUTC                          // 시간대
   Lmsgprefix                    // 접두사
   LstdFlags     = Ldate | Ltime // 초기값
)

예시

go
func main() {
   log.SetFlags(log.Lshortfile | log.Lmicroseconds | log.Lmsgprefix | log.Ldate | log.Ltime)
   log.Println("로그")
   log.Panicln("panic 로그")
}

물론 log.SetOutput(w io.Writer) 를 사용하여 로그 출력 경로를 설정할 수도 있으며, New 메서드를 사용하여 자신의 인스턴스를 생성할 수도 있습니다.

go
func New(out io.Writer, prefix string, flag int) *Logger

요컨대, 표준 라이브러리의 log 패키지가 제공하는 기능은 충분하지 않으므로, 일반적으로 zap 등 더욱 완벽한 서드파티 로그 패키지를 사용합니다.

Golang by www.golangdev.cn edit