Вот один из способов сделать это, используя стандартный пакет 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!!")
}
Примечания:
io.MultiWriter
используется для объединения нескольких писателей.Здесь он создает средство записи w
- запись в w
перейдет в os.Stdout
, а также в два файла log.New
позволяет нам создать новый объект log.Logger
с пользовательским средством записи - Объект
log.Logger
может быть передан в функции и использован ими для записи вещей