gpt4 book ai didi

去测试删除logger.SetLogging日志文件

转载 作者:IT王子 更新时间:2023-10-29 02:09:39 25 4
gpt4 key购买 nike

我有一个用于定义日志文件路径的函数的测试用例,然后设置记录器,以便将 log.* 语句写入标准输出和日志文件:

lf, err := os.Create(logFile)
mw := io.MultiWriter(os.Stdout, lf)
log.SetOutput(mw)

在我的测试用例中,我试图在最后清理,但文件上似乎仍然有锁,这意味着 Os.Remove() 调用不起作用(甚至返回错误)

我已经尝试将 SetOutput 设置为 nil 以及使用 defer 语句。

func TestSetLogging(t *testing.T) {
// do stuff
...
log.Println("this should be in logger file")

// cleanup
log.SetOutput(nil)
defer os.Remove(logFile)
}

然而,日志文件仍然出现在磁盘上。我怎样才能删除这个文件?

最佳答案

尝试调用:

lf.Close()

之前

os.Remove(logFile)

或者你可以替换

defer os.Remove(logFile)

与:

defer func() {
lf.Close()
os.Remove(logFile)
}()

关于去测试删除logger.SetLogging日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51050209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com