Некоторые go библиотеки используют такое ведение журнала
в вашем пакете, определите интерфейс регистратора
type Yourlogging interface{
Errorf(...)
Warningf(...)
Infof(...)
Debugf(...)
}
и определите переменную для этого интерфейса
var mylogger Yourlogging
func SetLogger(l yourlogging)error{
mylogger = l
}
в свое удовольствие c, вы можете вызвать их для регистрации
mylogger.Infof(..)
mylogger.Errorf(...)
вам не нужно реализовывать интерфейс, но вы можете использовать их, которые реализуют этот интерфейс
for example:
SetLogger(os.Stdout) //logging output to stdout
SetLogger(logrus.New()) // logging output to logrus (github.com/sirupsen/logrus)