Тип log.Logger

Тип log.Logger представляет собой структуру, которая обеспечивает форматированный вывод логов. Он позволяет настраивать префикс, флаги и вывод на различные устройства. Для создания нового логгера используется функция log.New, которая принимает выходной поток, префикс и флаги форматирования.

Синтаксис

golog.New(out io.Writer, prefix string, flag int) *log.Logger

Пример

Создадим базовый логгер с выводом в стандартный вывод:

gopackage main

import (
  "log"
  "os"
)

func main() {
  logger := log.New(os.Stdout, "INFO: ", log.LstdFlags)
  logger.Println("Application started successfully")
}

Результат выполнения кода:

go"INFO: 2026/01/15 14:30:22 Application started successfully"

Пример

Создадим логгер с пользовательским префиксом и флагами для отладки:

gopackage main

import (
  "log"
  "os"
)

func main() {
  logger := log.New(os.Stdout, "DEBUG: ", log.Ldate|log.Ltime|log.Lshortfile)
  logger.Printf("User with ID %d logged in", 12345)
}

Результат выполнения кода:

go"DEBUG: 2026/01/15 14:30:22 main.go:10: User with ID 12345 logged in"

Пример

Используем логгер для записи ошибок в файл:

gopackage main

import (
  "log"
  "os"
)

func main() {
  file, err := os.Create("app.log")
  if err != nil {
    log.Fatal(err)
  }
  defer file.Close()

  logger := log.New(file, "ERROR: ", log.LstdFlags)
  logger.Println("Database connection failed")
}

Результат выполнения кода (содержимое файла app.log):

go"ERROR: 2026/01/15 14:30:22 Database connection failed"

Пример

Создадим несколько логгеров с разными уровнями логирования:

gopackage main

import (
  "log"
  "os"
)

func main() {
  infoLogger := log.New(os.Stdout, "INFO: ", log.LstdFlags)
  errorLogger := log.New(os.Stderr, "ERROR: ", log.LstdFlags|log.Lshortfile)

  infoLogger.Println("Processing request #123")
  errorLogger.Println("Failed to parse JSON data")
}

Результат выполнения кода:

go"INFO: 2026/01/15 14:30:22 Processing request #123"
"ERROR: 2026/01/15 14:30:22 main.go:13: Failed to parse JSON data"

Смотрите также

  • функцию log.New,
    которая создает новый экземпляр логгера
  • функцию log.SetFlags,
    которая изменяет флаги форматирования логгера
  • функцию log.SetPrefix,
    которая устанавливает префикс для логгера
  • функцию log.SetOutput,
    которая изменяет вывод логгера