Rumah > Artikel > pembangunan bahagian belakang > Bagaimanakah cara saya mengubah hala Output Proses Luar ke Log di Golang dalam Masa Nyata?
Mengubah hala Output Proses ke Log di Golang
Apabila melaksanakan proses luaran di Golang, ia boleh menjadi sangat berharga untuk menangkap dan mencatatkan output mereka dengan segera. Semasa menunggu proses selesai dan menggunakan CombinedOutput() membenarkan pengelogan, adalah tidak praktikal untuk proses yang berjalan lama atau belum selesai.
Sebagai alternatif, menulis kepada Stdout dalam masa nyata tidak mencukupi untuk perkhidmatan yang tidak menghasilkan output kepada sebuah terminal. Satu penyelesaian ialah memanfaatkan paip untuk pengalihan keluaran yang cekap.
Menggunakan Paip untuk Pengalihan Semula
Paip mewujudkan sambungan antara proses, membolehkan pemindahan data. Untuk mengubah hala output proses ke log, ikuti langkah berikut:
Menambah pengendali untuk Stderr boleh dicapai dengan mencipta goroutine untuk pengendalian serentak kedua-dua saluran output .
Contoh Pelaksanaan:
Pertimbangkan coretan kod berikut menggunakan paip untuk pengalihan semula output:
stdout, err := cmd.StdoutPipe() if err != nil { return 0, err } if err := cmd.Start(); err != nil { return 0, err } in := bufio.NewScanner(stdout) for in.Scan() { log.Printf(in.Text()) } if err := in.Err(); err != nil { log.Printf("error: %s", err) }
Dengan menggunakan pendekatan ini, anda boleh dengan berkesan tangkap dan log keluaran proses luaran tepat pada masanya, memastikan maklumat berharga tersedia untuk penyahpepijatan dan analisis.
Atas ialah kandungan terperinci Bagaimanakah cara saya mengubah hala Output Proses Luar ke Log di Golang dalam Masa Nyata?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!