gpt4 book ai didi

go - Zap记录器源代码行

转载 作者:行者123 更新时间:2023-12-01 22:14:34 25 4
gpt4 key购买 nike

如何使用zap打印确切的源代码行。我创建了一个存储变量的包(zap记录器)。该全局变量将在该程序包的内部函数中调用。
问题在于它没有打印实际的调用者,而是在logger包内的内部函数调用位置被logger调用。这是我的代码:

package log

import (
zap "go.uber.org/zap"
)

var logger *zap.Logger

func Init() {
logger,_ = zap.NewDevelopment()
}

func Info(msg interface{}) {
if v,ok := msg.(string); ok {
logger.Info(v) // when I called this function it always print the caller from this line, not the caller outside who actually called this function.
} else {
logger.Info(fmt.Sprintf("%v",msg))
}
}

为实际调用者打印源代码行值的解决方法是什么?

最佳答案

使用runtime调用者。

import "runtime"

// call below line inside your Info function.
pc, src, line, ok := runtime.Caller(1)


src和line是您所需要的。

关于go - Zap记录器源代码行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61246838/

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