Cara Membaca Fail Log dalam Masa Nyata dalam Go
Untuk menghuraikan fail log semasa ia dikemas kini dalam Go, pertimbangkan untuk menggunakan pakej ekor dari github.com/hpcloud/tail. Ia menyediakan cara yang mudah untuk menjejaki perubahan dalam fail tanpa membacanya berulang kali.
Pelaksanaan:
import ( "fmt" "github.com/hpcloud/tail" ) func main() { // Open the log file for tailing t, err := tail.TailFile("/var/log/nginx.log", tail.Config{Follow: true}) if err != nil { panic(err) } // Process new log lines as they are written for line := range t.Lines { fmt.Println(line.Text) } }
Mengendalikan Pemangkasan dan Penamaan Semula:
Untuk mengendalikan pemangkasan fail log dan penamaan semula (mis., disebabkan oleh logrotate):
t, err := tail.TailFile("/var/log/nginx.log", tail.Config{ Follow: true, ReOpen: true, }) _ = t // Ignore return value for demonstration purposes
Pilihan Config.ReOpen adalah serupa dengan pilihan -F bagi arahan ekor, yang membuka semula fail jika ia dinamakan semula atau diputar.
Penghadan :
Perhatikan bahawa semasa pakej ekor memantau saiz fail untuk mengesan perubahan, ia tidak mengendalikan semua senario, seperti pemadaman fail. Untuk pengendalian yang lebih mantap, pertimbangkan untuk memantau fail menggunakan proses khusus (cth., menggunakan inotify) atau menggunakan sistem pengurusan log.
Atas ialah kandungan terperinci Bagaimana untuk Menghuraikan Fail Log Masa Nyata dalam Go Menggunakan Pakej `tail`?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!