Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Log Mesej ke Konsol dan Fail dalam Go?

Bagaimana untuk Log Mesej ke Konsol dan Fail dalam Go?

Patricia Arquette
Patricia Arquetteasal
2024-11-15 06:10:03257semak imbas

How to Log Messages to Both Console and File in Go?

Cara Log Mesej ke Berbilang Destinasi dalam Go

Apabila mengelog mesej dalam Go, anda mungkin perlu mengeluarkan log ke kedua-dua konsol dan fail serentak. Walaupun mudah untuk mengarahkan mesej semata-mata kepada fail menggunakan log.SetOutput(logFile), terdapat cara untuk mendayakan log masuk kedua-dua terminal dan fail sasaran.

Melaksanakan Pelbagai Destinasi

Untuk mencapai pengelogan dalam berbilang destinasi, gunakan io.MultiWriter. Seperti yang tersirat oleh namanya, MultiWriter memudahkan penulisan kepada berbilang penulis secara serentak, serupa dengan perintah Unix tee(1).

Begini cara melaksanakannya menggunakan MultiWriter:

import (
  "os"
  "io"
  "log"
)

func main() {
  logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
  if err != nil {
    panic(err)
  }
  
  // Initialize io.MultiWriter to write to both file and console
  mw := io.MultiWriter(os.Stdout, logFile)
  
  // Set output to MultiWriter
  log.SetOutput(mw)
}

Dalam contoh ini , mw ialah contoh io.MultiWriter yang menulis kepada kedua-dua os.Stdout (konsol) dan logFail. Dengan menetapkan log.SetOutput(mw), semua mesej log seterusnya akan dicetak dalam konsol dan dilog ke fail yang ditentukan.

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

Kenyataan:
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