콘솔과 로그 파일에 동시에 명령 출력 쓰기
명령 출력을 콘솔과 로그 파일 모두로 리디렉션하려고 합니다. 기존 코드는 출력을 콘솔로 보내지만 기록하지는 않습니다. 두 스트림을 모두 리디렉션하려면 아래 설명된 기술을 사용하세요.
목표를 달성하려면 다음 접근 방식을 고려하세요.
Stdout 및 Stderr를 MultiWriter로 리디렉션
파일과 표준 출력을 결합하는 MultiWriter를 만듭니다. 그런 다음 명령을 실행하기 전에 이 MultiWriter를 명령의 Stdout 및 Stderr 스트림에 할당합니다.
예제 코드
<code class="go">package main import ( "io" "log" "os" "os/exec" ) func main() { // Open the log file for writing f, err := os.OpenFile("log.log", os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666) if err != nil { log.Fatalf("Error opening file: %v", err) } defer f.Close() // Create a MultiWriter that combines the log file and standard output mwriter := io.MultiWriter(f, os.Stdout) // Construct the command cmd := exec.Command("ls") // Redirect Stdout and Stderr to the MultiWriter cmd.Stdout = mwriter cmd.Stderr = mwriter // Run the command err = cmd.Run() if err != nil { panic(err) } }</code>
이 코드는 로그 파일을 열고 MultiWriter는 명령의 스트림을 MultiWriter로 설정하고 명령을 실행합니다. 출력은 실시간으로 올바른 순서로 콘솔과 로그 파일로 리디렉션됩니다.
위 내용은 콘솔과 로그 파일에 명령 출력을 동시에 쓰려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!