로그를 사용하지 않고 Go에서 Stderr로 인쇄하는 방법
사용하지 않고 log
어떻게 Stderr에 메시지를 쓸 수 있습니까?
이 SO 게시물의 주석은log
: 으로 수행하는 방법을 보여줍니다 . log.Println("Message")
하지만 타임 스탬프를 원하지 않으면 어떻게해야합니까?
다음은 좋은 바둑입니까?
os.Stderr.WriteString("Message")
타임 스탬프를 원하지 않는 경우 다음 log.Logger
으로 flag
설정하여 새로 만듭니다 0
.
l := log.New(os.Stderr, "", 0)
l.Println("log msg")
편집하다:
다음은 좋은 바둑입니까?
os.Stderr.WriteString("Message")
이것은 허용 가능하며 및 fmt.Fprintf
친구를 사용 하여 형식화 된 출력을 얻을 수도 있습니다 .
fmt.Fprintf(os.Stderr, "number of foo: %d", nFoo)
fmt
패키지를 사용하여 다음 과 같이 작성하도록 선택할 수 있습니다 stderr
.
import "fmt"
import "os"
func main() {
fmt.Fprintln(os.Stderr, "hello world")
}
os.Stderr
는 io.Writer
당신이를 받아들이는 모든 함수에서 사용할 수 있도록 io.Writer
. 다음은 몇 가지 예입니다.
str := "Message"
fmt.Fprintln(os.Stderr, str)
io.WriteString(os.Stderr, str)
io.Copy(os.Stderr, bytes.NewBufferString(str))
os.Stderr.Write([]byte(str))
그것은 모두 당신이 인쇄하려는 문자열을 얼마나 정확하게 가지고 있는지에 달려 있습니다 (즉, 먼저 포맷하고 싶다면 io.Reader
,으로 가지고 있다면, 바이트 조각으로 가지고 있다면 ...). 그리고 훨씬 더 많은 방법이있을 수 있습니다.
기본적으로 로거 플래그는로 설정됩니다 Ldate | Ltime
. 로거 형식을 다음 중 하나로 변경할 수 있습니다 ( golang 로그 문서에서 ).
Ldate = 1 << iota // the date in the local time zone: 2009/01/23
Ltime // the time in the local time zone: 01:23:23
Lmicroseconds // microsecond resolution: 01:23:23.123123. assumes Ltime.
Llongfile // full file name and line number: /a/b/c/d.go:23
Lshortfile // final file name element and line number: d.go:23. overrides Llongfile
LUTC // if Ldate or Ltime is set, use UTC rather than the local time zone
LstdFlags = Ldate | Ltime // initial values for the standard logger
예를 들어, Ldate | Ltime (또는 LstdFlags)은
2009/01/23 01:23:23 message
플래그 Ldate 동안 | Ltime | L 마이크로 초 | Llongfile 생산,
2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
플래그를 0으로 설정하여 아무것도 인쇄하지 않도록 기본 로거를 설정할 수도 있습니다.
log.SetFlags(0)
SetOutput 함수를 사용하고 출력 스트림을 os.Stdout으로 설정하십시오.
import (
"log"
"os"
)
func init() {
log.SetOutput(os.Stdout)
}
func main() {
log.Println("Gene Story SNP File Storage Server Started.")
}
참조 URL : https://stackoverflow.com/questions/29721449/how-can-i-print-to-stderr-in-go-without-using-log
'IT story' 카테고리의 다른 글
나뭇 가지에 두 줄을 결합하는 방법? (0) | 2021.01.05 |
---|---|
Android 발리 라이브러리에서 쿠키 사용 (0) | 2021.01.05 |
@Bean과 @Autowired의 차이점 (0) | 2021.01.05 |
테두리, 패딩 및 여백을 포함한 html 요소 (div)의 전체 높이? (0) | 2021.01.05 |
heroku 푸시에서 git 원격이 실패한 gem 파일 (0) | 2021.01.05 |