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 중국어 웹사이트의 기타 관련 기사를 참조하세요!