Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Log dan Cetak Output Perintah ke Konsol secara serentak?
Konsol Serentak dan Output Log untuk Command Stdout dan Stderr
Matlamat kod yang disediakan adalah untuk mencetak command stdout dan stderr ke konsol dalam masa nyata sambil log masuk ke fail secara serentak, tanpa mengubah suai perintah itu sendiri.
Untuk mencapai ini, kita boleh menggunakan jenis io.MultiWriter. Begini caranya:
<code class="go">package main import ( "io" "log" "os" "os/exec" ) func main() { // Logging capability 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() // Define a MultiWriter that includes both the log file and stdout multiWriter := io.MultiWriter(f, os.Stdout) // Set stdout and stderr of the command to the MultiWriter cmd := exec.Command("php", "randomcommand.php") cmd.Stdout = multiWriter cmd.Stderr = multiWriter if err := cmd.Run(); err != nil { log.Fatal(err) } }</code>
Dengan mentakrifkan multiWriter sebagai gabungan fail log dan stdout, kami secara berkesan menulis output arahan ke kedua-dua destinasi secara serentak. cmd.Run() menyekat sehingga arahan selesai, memastikan susunan output dikekalkan.
Penyelesaian ini memenuhi semua keperluan:
Atas ialah kandungan terperinci Bagaimana untuk Log dan Cetak Output Perintah ke Konsol secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!