2014-05-09 2 views
4

나는 log 패키지를 사용하고 있으며, 로그 데이터의 기본 목적지가 궁금합니다. 나는 그것을 어디에서도 발견 할 수 없다. io 작성자가 필요하며 특별히 각 로그 다음에 전화하거나 어떻게 작동해야합니까?어디에서 오류를 기록합니까?

답변

5

line 58 of log.go 같이 stdErr해야한다 :

var std = New(os.Stderr, "", LstdFlags) 
그래서 Fatal() 등의 패키지 방법은 기본적으로 표준을 사용

:

// Fatal is equivalent to Print() followed by a call to os.Exit(1). 
func Fatal(v ...interface{}) { 
    std.Output(2, fmt.Sprint(v...)) 
    os.Exit(1) 
} 

"How to write Go packages coders will love"참조 (남작 슈워츠) 블로그 포스트 그 기술 :

패턴 중 하나 표준 Go 라이브러리에서 package-and-object라고 부르는 것을 발견했습니다. (그것은 내 이름입니다; 아마도 다른 이름으로 이미 알려진 것을 재발 명하거나 명명하고있을 것입니다.)이 관용구를 여러 패키지에서 볼 수 있습니다. 이 패키지는 사용하기 편리합니다.

관용구의 본질은 평소대로 메서드를 사용하여 형식을 디자인 한 다음 패키지 수준에서 일치하는 함수를 배치한다는 것입니다. 이 함수는 init() 함수에서 생성 된 개인 패키지 수준 변수의 기본 인스턴스에 위임합니다.

예를 들어 기본 로깅 기능을 살펴 보려면 log 패키지를 가져온 다음 log.Print()과 같은 코드를 작성하면됩니다. 그것은 매우 간결하고 편리하며, 올바른 일을합니다.
맞춤 설정 하시겠습니까? 자신의 log.Logger 변수를 만들고 속성을 설정하십시오.

+0

도 참조하십시오. http://www.goinggo.net/2013/11/using-log-package-in-go.html – VonC

+0

아직 이해가되지 않습니다 ... 루틴을 실행 중입니다. 로그를 찾지 못했습니다. –

+0

@Theuserwithnohat 내가 언급 한 기사는 단지'import log'를 사용하고'log.xxx()'를 직접 사용할 수 있음을 보여줍니다 : "로그를 찾을 필요가 없습니다. 그냥 가져 와서 사용할 수 있습니다. 그것. – VonC

관련 문제