В този урок за пакета Logrus в Golang ще проучим различни примери за това колко ефективно може да се регистрира в Go и ще видим колко важни са дневниците в езика за програмиране Go. Сега ще започнем.
Започвайки с Go
Ето структурата на директориите, която направих за моята програма Hello World:
Ето програмата, която създадохме:
пакет основенимпортиране "fmt"
func main ()
fmt.Printf ("Здравей, свят.\н")
Можем да стартираме горната програма със следната команда:
иди тичай здравей.отивамСлед като изпълним тази команда, ето резултата, който ще видите:
Сега това изглежда добре. Нека да преминем към основната ни програма.
Logrus пакет в Golang
За да започнем да използваме пакета Logrus в програмата Go, трябва вземете то. Изпълнете следната команда:
отидете да вземете -t github.com / Sirupsen / logrusКогато започнем да използваме този пакет в IntelliJ, виждаме тази грешка, която можем да отстраним с едно щракване:
След като получите пакета, можем да започнем да го използваме. Нека започнем с проста програма.
Основно регистриране с Logrus
Ще започнем с много основен пример за регистриране на ниво INFO. Регистрацията може да се извърши с низови съобщения и метаданни под формата на двойки ключ-стойност, които изглеждат еднакви.
пакет основенвнос (
log "github.com / Sirupsen / logrus "
)
func main ()
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
"помощ": 200,
).Информация ("Golang pro")
Когато стартираме тази програма, можем да видим следния изход:
Сега това е едновременно полезно и цветно!
Различни нива на регистрация
Сега ще опитаме друг пример, който ще покаже използването на различни нива на регистрация, налични в Logrus и като цяло. Те са:
- Информация
- Внимание
- Фатално
- Отстраняване на грешки
- Паника
Нека се опитаме да изградим програма и да видим как тези нива на дневника се различават, когато се появят в нашата програма:
пакет основенвнос (
log "github.com / Sirupsen / logrus "
)
func main ()
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
).Информация ("Golang pro INFO съобщение")
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
).Предупреждение ("Golang pro WARN съобщение")
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
).Fatal ("Golang pro FATAL message")
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
).Паника ("Golang pro PANIC съобщение")
дневник.WithFields (log.Полета
"уебсайт": "linuxhint.com ",
"страхотно": 100,
).Отстраняване на грешки ("Golang pro DEBUG message")
Когато стартираме тази програма, ще видим следния изход:
Забеляза нещо? Операторите на дневника след израза Fatal дори не се появяват в изхода ни. Това е така, защото веднага щом се получи фатална грешка, изпълнението на програмата спира в Golang.
Нека променим реда на тези изявления и проверим дали се наблюдават и някои промени в изхода:
Този път дори нивото на Panic Log реагира по същия начин, но изходът беше много различен и подробен.
С ниво на регистрация Panic се уверете, че достатъчно информация за хост машината също се отпечатва в изхода в конзолата, така че работата да може да бъде отстранена от грешки.
По-лесен начин за създаване на трупи
В горните обаждания дневниците бяха доста подробни и с метаданни. Има по-лесен начин да регистрирате вашите съобщения. Нека опитаме това сега:
пакет основенвнос (
log "github.com / Sirupsen / logrus "
)
func main ()
дневник.Отстраняване на грешки ("Отстраняване на грешки в данните тук.")
дневник.Информация („Съобщения за обща информация“)
дневник.Warn ("Трябва да погледнете това предупреждение!")
дневник.Грешка ("Нещо се провали, но програмата ще продължи.")
// Обажда се os.Излезте (1) след регистриране
дневник.Fatal („Отивам си.")
// Извиква panic () след регистриране
дневник.Паника („Няма да бъда отпечатана :(“)
Ето изхода за програмата:
Поведението при регистриране беше същото, но този път те бяха лесни за изпълнение само в един ред.
Заключение
В тази публикация проучихме прости, но полезни примери за това как можем да регистрираме важни съобщения с различна тежест и многословност в нашите приложения, използвайки пакета Logrus с Golang.