Общая библиотека для использования в разных приложениях: логгер, подключение к Sentry, хранилище (BadgerDB).
go get github.com/gurunn/inject@v0.3.0В коде:
import (
"github.com/gurunn/inject/logger""github.com/gurunn/inject/sentryconnect""github.com/gurunn/inject/storage"
)
// Логгерlogger.InitLogger()
logger.LogError(err, "context")
logger.LogAndCapture(hub, err, "context", nil)
// Sentry (version и moduleName из вашего приложения)hub, err:=sentryconnect.InitSentry(version, moduleName)
// Хранилищеdb:=&storage.Badger{
Path: "/tmp/badger",
SentryBadger: hub,
AfterInsert: func(taskIDstring, data []byte) { /* опционально */ },
}
db.Open()
db.Insert(taskID, jsonData)
res, err:=db.Get(taskID) // *storage.TaskResultЕсли Go обращается к checksum-базе и выдаёт ошибку:
go env -w GONOSUMDB=github.com/gurunn/injectОтключите прокси для модуля:
go env -w GOPRIVATE=github.com/gurunn/inject
Настройте доступ (HTTPS с токеном или SSH), например:
git config --global url."git@github.com:".insteadOf "https://github.com/"
В go.mod вашего приложения:
requiregithub.com/gurunn/injectv0.0.0replacegithub.com/gurunn/inject=>/path/to/injectПосле публикации уберите replace и укажите нужную версию (например, v0.3.0).