Как записывать журналы в несколько файлов журнала в Голанге? - PullRequest
0 голосов
/ 22 февраля 2019

Я пишу приложение, в котором мне нужно записывать журналы в два разных файла.Например, weblogs .go и debuglogs.go .Я попытался использовать log4go , но мое требование - мне нужно, чтобы регистратор создавался в основном файле и был доступен в подкаталоге, так как основная часть декодирования и ведения журнала выполняется в подфайле.Кто-нибудь может помочь с этим?

1 Ответ

0 голосов
/ 22 февраля 2019

Вот один из способов сделать это, используя стандартный пакет log:

package main

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

func main() {
    f1, err := os.Create("/tmp/file1")
    if err != nil {
        panic(err)
    }
    defer f1.Close()

    f2, err := os.Create("/tmp/file2")
    if err != nil {
        panic(err)
    }
    defer f2.Close()

    w := io.MultiWriter(os.Stdout, f1, f2)
    logger := log.New(w, "logger", log.LstdFlags)

    myfunc(logger)
}

func myfunc(logger *log.Logger) {
    logger.Print("Hello, log file!!")
}

Примечания:

  1. io.MultiWriter используется для объединения нескольких писателей.Здесь он создает средство записи w - запись в w перейдет в os.Stdout, а также в два файла
  2. log.New позволяет нам создать новый объект log.Logger с пользовательским средством записи
  3. Объект log.Logger может быть передан в функции и использован ими для записи вещей
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...