Функция log.Printf
Функция log.Printf из пакета log предназначена
для вывода отформатированного сообщения в лог.
В качестве первого параметра она принимает строку шаблона
с форматными спецификаторами, а в качестве второго -
набор значений для подстановки в этот шаблон.
В отличие от функции fmt.Printf, которая выводит
сообщение в стандартный вывод, log.Printf выводит
сообщение в стандартный логгер с добавлением временной
метки в начале каждой записи. Это делает ее особенно
полезной для логирования работы приложения.
Синтаксис
log.Printf(format string, v ...any)
Первый параметр format - это строка шаблона,
содержащая текст и спецификаторы для подстановки значений.
Второй параметр v...any - это переменное количество
аргументов, значения которых будут подставлены в шаблон
согласно спецификаторам.
Пример
Давайте выведем в лог простое информационное сообщение
с использованием log.Printf:
package main
import (
"log"
)
func main() {
name := "Alice"
age := 30
log.Printf("User %s is %d years old", name, age)
}
Результат выполнения кода:
"2026/09/04 15:30:45 User Alice is 30 years old"
Обратите внимание, что сообщение автоматически дополняется временной меткой в формате "год/месяц/день часы:минуты:секунды".
Пример
Давайте используем различные спецификаторы формата для вывода значений разных типов:
package main
import (
"log"
)
func main() {
message := "Server started"
port := 8080
isReady := true
pi := 3.14159
log.Printf("Message: %s, Port: %d", message, port)
log.Printf("Ready: %t, Pi: %.2f", isReady, pi)
}
Результат выполнения кода:
"2026/09/04 15:30:45 Message: Server started, Port: 8080"
"2026/09/04 15:30:45 Ready: true, Pi: 3.14"
Пример
Функция log.Printf может использоваться для
логирования ошибок вместе с дополнительной информацией:
package main
import (
"errors"
"log"
)
func main() {
err := errors.New("connection refused")
url := "https://example.com/api"
if err != nil {
log.Printf("Failed to connect to %s: %v", url, err)
}
}
Результат выполнения кода:
"2026/09/04 15:30:45 Failed to connect to https://example.com/api: connection refused"
Смотрите также
-
функцию
log.Println,
которая выводит сообщение в лог без форматирования -
функцию
log.Print,
которая выводит сообщение в лог без форматирования и перевода строки -
функцию
log.Fatalf,
которая выводит форматированное сообщение и завершает программу -
функцию
log.Panicf,
которая выводит форматированное сообщение и вызывает панику