实施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{})
}
答案 0 :(得分:3)
您可以尝试写入多个目标:
mylog.SetOutput(io.MultiWriter(file, os.Stdout))
答案 1 :(得分:1)
如果你使用 logrus,你最好使用文档推荐的钩子。
请参阅:https://github.com/rifflock/lfshook 以获取示例。
使用 multiwriter 不是最佳选择,因为您不能为 stdout 和文件设置不同的格式,这是您通常想要的(例如,stdout 的颜色和文件的不同时间戳)。