Bagaimana untuk Log ke Konsol dan Fail serentak dalam Go?

DDD
Lepaskan: 2024-11-11 01:19:02
asal
863 orang telah melayarinya

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)
}
Salin selepas log masuk
  1. Buat MultiWriter untuk menggabungkan konsol dan output fail:
mw := io.MultiWriter(os.Stdout, logFile)
Salin selepas log masuk
  1. Tetapkan destinasi output lalai untuk log:
log.SetOutput(mw)
Salin selepas log masuk

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")
}
Salin selepas log masuk

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!

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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan