Go에서 콘솔과 파일 모두에 로깅
Go에서는 log.SetOutput(logFile을 사용하여 쉽게 로그 메시지를 파일로 보낼 수 있습니다. ). 하지만 이러한 메시지를 콘솔에도 표시하려면 어떻게 해야 할까요?
io.MultiWriter 사용
이를 달성하려면 io.MultiWriter를 사용할 수 있습니다. 이렇게 하면 제공된 모든 기록기에 쓰기를 복제하는 기록기가 생성됩니다. 이는 Unix tee(1) 명령과 유사합니다.
logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if err != nil { panic(err) } // Create a MultiWriter that writes to both the console and the file. mw := io.MultiWriter(os.Stdout, logFile) // Set the logger's output to the MultiWriter. log.SetOutput(mw)
이 예에서 원본 코드의 유일한 변경 사항은 io.MultiWriter를 생성하고 로거의 출력을 여기에 설정하는 것입니다. 이제 모든 로그 메시지가 콘솔과 지정된 파일 모두에 기록되므로 지속적인 로그를 유지하면서 실시간으로 로그를 모니터링할 수 있는 편리한 방법을 제공합니다.
위 내용은 Go에서 콘솔과 파일에 모두 로그인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!