Что делать, если модуль go не работает - PullRequest
0 голосов
/ 15 ноября 2018

Как разработчик Node.js, я все еще новичок в Golang и борюсь с управлением зависимостями в Go.Я использую Go 1.11 и применил mod init после импорта всех моих зависимостей.Одним из них является logrus, который не позволяет мне скомпилировать приложение go.

Проблема:

Я считаю, что проблема действительно в logrus, однако я неНе знаю, как мне теперь получить другую (рабочую) версию logrus, чтобы я мог снова скомпилировать свое приложение.

/Users/redacted/Documents/redacted3/redacted2>Finished running tool: /usr/local/bin/go vet ./...
/Users/redacted/go/pkg/mod/github.com/sirupsen/logrus@v1.2.0/entry.go:51: undefined: Logger
/Users/redacted/go/pkg/mod/github.com/sirupsen/logrus@v1.2.0/entry.go:54: undefined: Fields
/Users/redacted/go/pkg/mod/github.com/sirupsen/logrus@v1.2.0/entry.go:61: undefined: Level

Как мне избавиться от этих назойливых проблем с зависимостями?

Соответствующий импорт:

log "github.com/sirupsen/logrus"

Go.mod содержит

github.com/sirupsen/logrus v1.2.0

Ответы [ 2 ]

0 голосов
/ 16 ноября 2018

Мне пришлось удалить модуль в моем пути /go/pkg/mod/github.com/..., который устранил проблему.Видимо, что-то пошло не так при создании модуля или при первоначальном извлечении кода из github.

После этого я go get снова запустил мой logrus lib, и он заработал как задумано.

0 голосов
/ 16 ноября 2018
  • Я думаю, что модуль logrus в порядке, вы просто пропустили определение «log.WithFields».Пожалуйста, ознакомьтесь с документацией здесь: https://github.com/sirupsen/logrus.Код ниже работает для меня.

  • Файл main.go:

    //Source : https://github.com/sirupsen/logrus
    //logrus version : require github.com/sirupsen/logrus v.1.2.0
    //go version go1.11.2 linux/amd64
    
    
    package main
    
    import (
    //Go package
    "os"
    "fmt"
    log "github.com/sirupsen/logrus"
    )
    
    //Checking if the logout file exist
    //Just to show the Fatal tag.
    func Exists(name string) bool {
            _, err := os.Stat(name)
            return !os.IsNotExist(err)
    }
    
    
    func main() {
            fmt.Println("I'am the main here ... all begin ...") 
    
            log.WithFields(log.Fields{"main": "main process",}).Info("Initialization.")
            log.WithFields(log.Fields{"main": "...some codes....",}).Warn("Nothting here yet.")
    
            log.WithFields(log.Fields{"main":"main process",}).Info("It's done. Thanks.")
    
            //The check here (it's just for demo) so you can see the others tags
            if Exists("paht/to/mylogoutfile") == false {
                    log.WithFields(log.Fields{"main": "Checking logoutputfile path.",}).Fatal("Mising the Logout file.")
    }
    
            //fmt.Println("This is the end Thankyou for using this. :) ")
            }
    
  • Файл go.mod:

    module logrustest
    
    require github.com/sirupsen/logrus v1.2.0 // indirect
    
  • Вывод: enter image description here

Удачи:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...