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

Bagaimana untuk Log ke Konsol dan Fail serentak dalam Go?

DDD
DDDasal
2024-11-11 01:19:02896semak imbas

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

Melog Serentak ke Konsol dan Fail dalam Go

Untuk mengarahkan mesej log ke fail, kod itu biasanya menggunakan log.SetOutput(logFile) . Walau bagaimanapun, jika anda inginkan kedua-dua output konsol dan log masuk ke fail, berikut ialah penyelesaian menggunakan io.MultiWriter.

Apakah io.MultiWriter?

An io.MultiWriter membenarkan menulis data ke beberapa destinasi serentak. Ia menyerupai tingkah laku arahan Unix tee.

Penyelesaian

Untuk log masuk ke kedua-dua konsol dan fail:

  1. Buat fail untuk pengelogan:
logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666)
if err != nil {
    panic(err)
}
  1. Buat MultiWriter untuk menggabungkan konsol dan output fail:
mw := io.MultiWriter(os.Stdout, logFile)
  1. Tetapkan destinasi output lalai untuk log:
log.SetOutput(mw)

Contoh

package main

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

func main() {
    logFile, err := os.OpenFile("log.txt", os.O_CREATE | os.O_APPEND | os.O_RDWR, 0666)
    if err != nil {
        panic(err)
    }

    mw := io.MultiWriter(os.Stdout, logFile)
    log.SetOutput(mw)

    log.Println("This is a log message")
}

Atas ialah kandungan terperinci Bagaimana untuk Log ke Konsol dan Fail serentak 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