>백엔드 개발 >Golang >Go 애플리케이션에서 로그인을 비활성화하는 방법은 무엇입니까?

Go 애플리케이션에서 로그인을 비활성화하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-11-15 11:35:02591검색

How to Disable Logging in Go Applications?

Go에서 기본 로거 비활성화

많은 Go 애플리케이션은 로깅을 위해 로그 패키지를 사용합니다. 기본적으로 표준 로거는 표준 출력에 기록하며 때로는 장황할 수 있습니다. 로깅을 비활성화해야 하는 경우 고려해야 할 몇 가지 접근 방식이 있습니다.

한 가지 옵션은 로그 호출을 수행하기 전에 플래그를 수동으로 확인하거나 프로덕션에서 주석 처리하는 것입니다. 그러나 로깅을 비활성화하는 더 우아하고 효율적인 방법은 로거의 출력을 리디렉션하는 것입니다.

io/ioutil.Discard 사용

Go 1.16 이전에는 로깅을 비활성화하려면 출력을 삭제하는 사용자 정의 io.Writer 유형을 생성해야 했습니다. 이는 Write 메소드를 구현하고 데이터를 삭제하도록 하는 구조체를 정의하여 달성할 수 있습니다.

type discardWriter struct{}

func (w discardWriter) Write(p []byte) (n int, err error) {
    return len(p), nil
}

그런 다음 이 사용자 정의 작성기를 사용하여 로거의 출력을 리디렉션할 수 있습니다.

import (
    "log"
    "io/ioutil"
)

func init() {
    log.SetOutput(ioutil.Discard)
}

이 설정을 사용하면 로거가 표준 출력에 쓰는 것처럼 보이지만 출력은 자동으로 삭제됩니다.

io.Discard 사용(Go 1.16 )

Go 1.16 이상에서는 더 간단한 접근 방식을 사용할 수 있습니다. io/ioutil 패키지는 기록된 모든 데이터를 삭제하는 Discard 기록기를 제공합니다. 다음과 같이 직접 사용할 수 있습니다.

log.SetOutput(io.Discard)

이렇게 하면 표준 로거에 대한 로깅이 완전히 비활성화됩니다.

위 내용은 Go 애플리케이션에서 로그인을 비활성화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.