Logrus go软件包将保存到.log文件,并且不会在控制台日志上打印

时间:2019-08-26 03:34:18

标签: go logging

实施Logrus Go软件包。文件已保存,但停止在控制台上打印出仅在已创建的名为vendor.log的.log文件中可见的日志。

这是当前使用的代码。


package logging

import (
    "fmt"
    "os"

    mylog "github.com/sirupsen/logrus"
)

// InitializeLogging asdas
func InitializeLogging(logFile string) {

    var file, err = os.OpenFile(logFile, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
    if err != nil {
        fmt.Println("Could Not Open Log File : " + err.Error())
    }
    mylog.SetOutput(file)

    //log.SetFormatter(&log.TextFormatter{})
    mylog.SetFormatter(&mylog.JSONFormatter{})
}

2 个答案:

答案 0 :(得分:3)

您可以尝试写入多个目标:

mylog.SetOutput(io.MultiWriter(file, os.Stdout))

答案 1 :(得分:1)

如果你使用 logrus,你最好使用文档推荐的钩子。

请参阅:https://github.com/rifflock/lfshook 以获取示例。

使用 multiwriter 不是最佳选择,因为您不能为 stdout 和文件设置不同的格式,这是您通常想要的(例如,stdout 的颜色和文件的不同时间戳)。