Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Berjaya Menulis Log ke Fail dalam Go?

Bagaimana untuk Berjaya Menulis Log ke Fail dalam Go?

Patricia Arquette
Lepaskan: 2024-12-13 07:06:13
asal
556 orang telah melayarinya

How to Successfully Write Logs to a File in Go?

Menulis Log ke Fail dalam Go

Dalam percubaan untuk log ke fail menggunakan Go, beberapa pendekatan telah dicuba, termasuk:

func TestLogging(t *testing.T) {
    if !FileExists("logfile") {
        CreateFile("logfile")
    }
    f, err := os.Open("logfile")
    if err != nil {
        t.Fatalf("error: %v", err)
    }

    // attempt #1
    log.SetOutput(io.MultiWriter(os.Stderr, f))
    log.Println("hello, logfile")

    // attempt #2
    log.SetOutput(io.Writer(f))
    log.Println("hello, logfile")

    // attempt #3
    log.SetOutput(f)
    log.Println("hello, logfile")
}
Salin selepas log masuk

Walau bagaimanapun, walaupun mencipta fail log (fail log), tiada maklumat ditulis kepadanya.

Penyelesaian melibatkan penggunaan os.OpenFile dan bukannya os.Open, yang menawarkan lebih kawalan ke atas kebenaran akses fail. Kod berikut berjaya menulis pada fail log:

f, err := os.OpenFile("testlogfile", os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
if err != nil {
    log.Fatalf("error opening file: %v", err)
}
defer f.Close()

log.SetOutput(f)
log.Println("This is a test log entry")
Salin selepas log masuk

Pendekatan ini menggunakan os.OpenFile dengan bendera berikut:

  • os.O_RDWR: Membuka fail dalam baca-tulis mod
  • os.O_CREATE: Mencipta fail jika ia tidak wujud
  • os.O_APPEND: Menambah data pada fail jika ia wujud

Dengan menggunakan os.OpenFile, anda boleh menentukan kebenaran akses fail yang diperlukan untuk memastikan log berjaya ditulis ke fail.

Atas ialah kandungan terperinci Bagaimana untuk Berjaya Menulis Log ke Fail dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan