Как напечатать точную исходную строку, используя zap. Я создаю пакет, в котором хранится переменная (zap 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))
}
}
Какой обходной путь для вывода значения исходной строки для фактического вызывающего абонента?