Функция log.Fatalf

Функция log.Fatalf из пакета log форматирует сообщение согласно переданному шаблону, записывает его в стандартный вывод ошибок (или в указанный вывод), а затем завершает программу с кодом 1. В первый параметр передается строка форматирования, во второй и последующие параметры передаются значения для подстановки в шаблон. Важно: после вызова log.Fatalf программа немедленно завершается, поэтому отложенные функции (defer) не выполняются.

Синтаксис

golog.Fatalf(format string, v ...any)

Пример

Давайте выведем отформатированное сообщение и завершим программу:

gopackage main

import (
  "log"
)

func main() {
  name := "Alice"
  age := 30
  log.Fatalf("User %s is %d years old", name, age)
}

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

go"2009/11/10 23:00:00 User Alice is 30 years old"

Пример

Давайте используем log.Fatalf для обработки ошибки при открытии файла:

gopackage main

import (
  "log"
  "os"
)

func main() {
  file, err := os.Open("non_existent.txt")
  if err != nil {
    log.Fatalf("Failed to open file: %v", err)
  }
  defer file.Close()
  log.Println("File opened successfully")
}

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

go"2009/11/10 23:00:00 Failed to open file: open non_existent.txt: no such file or directory"

Пример

Важно помнить, что отложенные функции не выполняются после вызова log.Fatalf. Проверим это на примере:

gopackage main

import (
  "log"
)

func main() {
  defer log.Println("This will not be printed")
  log.Fatalf("Program is terminating")
}

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

go"2009/11/10 23:00:00 Program is terminating"

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

  • функцию log.Fatal,
    которая выводит сообщение и завершает программу без форматирования
  • функцию log.Fatalln,
    которая выводит сообщение с переводом строки и завершает программу
  • функцию log.Println,
    которая выводит сообщение в журнал, но не завершает программу
  • функцию log.Printf,
    которая форматирует и выводит сообщение, но не завершает программу