Go에서 콘솔과 파일에 동시에 로깅
로그 메시지를 파일로 보내기 위해 코드는 일반적으로 log.SetOutput(logFile)을 사용합니다. . 그러나 콘솔 출력과 파일 로깅을 모두 원하는 경우 io.MultiWriter를 사용하는 솔루션이 있습니다.
io.MultiWriter란 무엇입니까?
io.MultiWriter 동시에 여러 대상에 데이터를 쓸 수 있습니다. 이는 Unix tee 명령의 동작과 유사합니다.
해결책
콘솔과 파일 모두에 로그인하려면:
logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666) if err != nil { panic(err) }
mw := io.MultiWriter(os.Stdout, logFile)
log.SetOutput(mw)
예
package main import ( "log" "os" "io" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666) if err != nil { panic(err) } mw := io.MultiWriter(os.Stdout, logFile) log.SetOutput(mw) log.Println("This is a log message") }
위 내용은 Go에서 콘솔과 파일에 동시에 로그인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!