正如我所看到的,每個開發人員都有自己的需求和方法來解決相同的事情/需求。作爲例子,日誌記錄。有許多日誌軟件包以不同的方式工作,每個開發者都選擇最適合他們需求/偏好的日誌軟件包。考慮到這一點,我想創建一個應該使用調用者的日誌包的包。可能嗎?有人有辦法做到這一點?如何創建一個包來使用任何記錄器,具體取決於golang中的「調用者」程序?
事情是這樣的:
主代碼中使用logrus包:
package main
import (
"os"
"github.com/Sirupsen/logrus"
"gitlab.com/tutume/_testing/globallogs/mypack"
)
var Log = logrus.New()
var myPack pack.Pack
func main() {
isDebug := os.Getenv("MYAPP_LOGLEVEL")
switch isDebug {
case "Debug":
Log.Level = logrus.DebugLevel
case "Info":
Log.Level = logrus.InfoLevel
default:
Log.Level = logrus.ErrorLevel
}
Log.Formatter = &logrus.TextFormatter{
ForceColors: true,
}
Log.Debug("Debugging...")
Log.Info("Informing...")
Log.Error("Normal...")
myPack.Logger = Log
myPack.DoSomething()
}
mypack代碼:
package pack
type Pack struct {
Logger interface{}
}
func (mp *Pack) DoSomething() {
// Logger.Debug("Debugging...")
// Logger.Info("Informing...")
// Logger.Error("Normal...")
}
謝謝。我會嘗試一些並讓你知道結果。 – Tuts