Go에서 여러 대상에 메시지를 기록하는 방법
Go에서 메시지를 기록할 때 두 콘솔 모두에 로그를 출력해야 할 수 있습니다. 그리고 파일을 동시에. log.SetOutput(logFile)을 사용하여 파일에만 메시지를 보내는 것은 간단하지만 터미널과 대상 파일 모두에서 로그인을 활성화하는 방법이 있습니다.
여러 대상 구현
여러 대상에 로그인하려면 io.MultiWriter를 활용하세요. 이름에서 알 수 있듯이 MultiWriter는 Unix tee(1) 명령과 유사하게 여러 작성기에 동시에 쓰기를 용이하게 합니다.
MultiWriter를 사용하여 이를 구현하는 방법은 다음과 같습니다.
import ( "os" "io" "log" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if err != nil { panic(err) } // Initialize io.MultiWriter to write to both file and console mw := io.MultiWriter(os.Stdout, logFile) // Set output to MultiWriter log.SetOutput(mw) }
이 예에서는 , mw는 os.Stdout(콘솔)과 logFile 모두에 쓰는 io.MultiWriter 인스턴스입니다. log.SetOutput(mw)을 설정하면 이후의 모든 로그 메시지가 콘솔에 인쇄되고 지정된 파일에 기록됩니다.
위 내용은 Go에서 콘솔과 파일 모두에 메시지를 기록하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!