我发现log4go软件包有时会丢失日志。

以下是一个简单的代码片段(我将log4go目录移动到了,因此可以进行以下导入):

package main
import (
    "log4go"
    "log"
    "fmt"
)

func main() {
    fmt.Println("fmt")
    log.Println("log")
    log4go.Info("log4go")
    log4go.Info("log4go")
}

然后我通过go run test.go执行了它,输出如下:
fmt
2013/01/10 15:24:04 log
log4go的消息不会写入输出。

为什么?

最佳答案

编辑:他们的入门页面似乎不再是最新的,实际上我在将log4go打印到stdout时遇到了问题,在3.0.1版的文档中,他们指出:

  • 用法说明:-ConsoleLogWriter不会将消息的源显示到标准输出,但是FileLogWriter会显示。

  • 那在我的盒子上是无法再现的。将其打印到stdout的唯一方法是在记录调用后通过调用os.Stdout.Sync()手动刷新(如@jnml建议)。

    通常,我的印象是log4go的文档最近没有维护,示例不起作用,它们使用了不推荐使用的方法,因此一般行为难以理解。

    关于logging - log4go的异常行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14252766/

    10-12 04:05