Menyalin Output Exec untuk Log masuk Go
In Go, mengubah hala output proses yang berjalan lama atau tidak selesai ke log boleh mencabar. Sementara menunggu proses selesai membolehkan penangkapan keluaran mudah, pengelogan masa nyata dalam persekitaran bukan terminal memerlukan pendekatan yang berbeza.
Satu penyelesaian melibatkan mencipta paip untuk menyambungkan stdout proses kepada pengimbas buffer:
stdout, err := cmd.StdoutPipe() if err != nil { return 0, err } // start the command after having set up the pipe if err := cmd.Start(); err != nil { return 0, err } // read command's stdout line by line in := bufio.NewScanner(stdout) for in.Scan() { log.Printf(in.Text()) // write each line to your log, or anything you need } if err := in.Err(); err != nil { log.Printf("error: %s", err) }
Kod ini mencipta paip stdout, memulakan arahan dan kemudian menggunakan pengimbas untuk membaca output baris demi baris. Setiap baris kemudiannya boleh dilog atau diproses mengikut keperluan. Dengan mengendalikan Stdout dengan cara ini, anda boleh mengubah hala output proses ke log anda semasa ia masih berjalan, memastikan pengelogan maklumat penting untuk perkhidmatan anda tepat pada masanya.
Atas ialah kandungan terperinci Bagaimana untuk Mengalihkan Output Exec ke Log masuk Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!