Как внедрить logger в приложение

«Как внедрить logger в приложение» — вопрос из категории Golang, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для внедрения логгера в Go-приложение можно использовать стандартный log или популярные библиотеки типа zap, logrus.

Стандартный log:

import "log"

func main() {
    log.Println("Info message")
    log.Fatal("Fatal error") // вызовет os.Exit(1)
}

Zap (производительный):

import "go.uber.org/zap"

func main() {
    logger, _ := zap.NewProduction()
    defer logger.Sync() // flush buffer
    logger.Info("Info message", zap.String("key", "value"))
}

Logrus (удобный API):

import "github.com/sirupsen/logrus"

func main() {
    log := logrus.New()
    log.SetFormatter(&logrus.JSONFormatter{})
    log.Info("Info message")
}

Советы:

  • Используйте интерфейсы (Logger interface) для DI и тестирования.
  • Настройте уровень логирования (Debug, Info, Error).
  • Для прода лучше zap из-за производительности.