Тип log.Logger
Тип log.Logger представляет собой структуру,
которая обеспечивает форматированный вывод логов.
Он позволяет настраивать префикс, флаги и вывод
на различные устройства. Для создания нового логгера
используется функция log.New, которая принимает
выходной поток, префикс и флаги форматирования.
Синтаксис
log.New(out io.Writer, prefix string, flag int) *log.Logger
Пример
Создадим базовый логгер с выводом в стандартный вывод:
package main
import (
"log"
"os"
)
func main() {
logger := log.New(os.Stdout, "INFO: ", log.LstdFlags)
logger.Println("Application started successfully")
}
Результат выполнения кода:
"INFO: 2026/01/15 14:30:22 Application started successfully"
Пример
Создадим логгер с пользовательским префиксом и флагами для отладки:
package 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)
}
Результат выполнения кода:
"DEBUG: 2026/01/15 14:30:22 main.go:10: User with ID 12345 logged in"
Пример
Используем логгер для записи ошибок в файл:
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.LstdFlags)
logger.Println("Database connection failed")
}
Результат выполнения кода (содержимое файла app.log):
"ERROR: 2026/01/15 14:30:22 Database connection failed"
Пример
Создадим несколько логгеров с разными уровнями логирования:
package 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")
}
Результат выполнения кода:
"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,
которая изменяет вывод логгера