РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
673 of 1593 menu

Функция log.New

Функция log.New создает новый логгер, который записывает сообщения в указанный выходной поток. Первым параметром функция принимает интерфейс io.Writer, куда будут записываться логи, вторым параметром - строку с префиксом, который добавляется в начало каждого сообщения, третьим параметром - флаги, определяющие форматирование сообщений.

Синтаксис

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

Пример

Давайте создадим логгер, который записывает сообщения в стандартный вывод с префиксом "INFO: " и флагом, добавляющим время и дату:

package main import ( "log" "os" ) func main() { logger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime) logger.Println("Application started") logger.Println("Processing data") }

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

"INFO: 2026/09/04 15:30:45 Application started" "INFO: 2026/09/04 15:30:45 Processing data"

Пример

Давайте создадим логгер для записи ошибок в файл с префиксом "ERROR: " и флагом, добавляющим время, дату и имя файла с номером строки:

package 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.Ldate|log.Ltime|log.Lshortfile) logger.Println("Database connection failed") logger.Println("Invalid user input") }

Содержимое файла после выполнения кода:

"ERROR: 2026/09/04 15:30:45 main.go:12: Database connection failed" "ERROR: 2026/09/04 15:30:45 main.go:13: Invalid user input"

Пример

Давайте создадим несколько логгеров с разными уровнями логирования, пишущих в один выходной поток:

package main import ( "log" "os" ) func main() { infoLogger := log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime) errorLogger := log.New(os.Stdout, "ERROR: ", log.Ldate|log.Ltime) infoLogger.Println("User logged in") errorLogger.Println("Failed to save file") infoLogger.Println("User logged out") }

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

"INFO: 2026/09/04 15:30:45 User logged in" "ERROR: 2026/09/04 15:30:45 Failed to save file" "INFO: 2026/09/04 15:30:45 User logged out"

Пример

Давайте создадим логгер без префикса и флагов, который просто записывает сырые сообщения:

package main import ( "log" "os" ) func main() { logger := log.New(os.Stdout, "", 0) logger.Print("Raw message 1") logger.Print("Raw message 2") }

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

"Raw message 1" "Raw message 2"

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

  • функцию log.SetFlags,
    которая устанавливает флаги форматирования для стандартного логгера
  • функцию log.SetPrefix,
    которая устанавливает префикс для стандартного логгера
  • функцию log.SetOutput,
    которая изменяет выходной поток для стандартного логгера
  • тип log.Logger,
    который представляет собой экземпляр логгера
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить