Функция log.Fatalln

Функция log.Fatalln выводит переданное сообщение в стандартный поток ошибок и немедленно завершает выполнение программы с кодом состояния 1. В отличие от log.Fatal, который работает аналогично fmt.Print, функция log.Fatalln добавляет символ новой строки в конце сообщения, подобно fmt.Println. В качестве параметров она принимает произвольное количество аргументов любого типа, которые форматируются стандартным образом.

Важно отметить, что после вызова log.Fatalln отложенные функции (defer) не выполняются, а горутины завершаются без остановки. Это делает функцию полезной для критических ошибок, когда дальнейшее выполнение программы невозможно.

Синтаксис

golog.Fatalln(args ...any)

Пример

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

gopackage main

import (
  "log"
)

func main() {
  log.Fatalln("Critical error occurred")
}

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

go"2026/09/04 12:34:56 Critical error occurred"

Обратите внимание, что сообщение предваряется временной меткой, добавляемой стандартным логгером, а программа завершается с кодом 1.

Пример

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

gopackage main

import (
  "log"
)

func main() {
  code := 404
  message := "Not Found"
  log.Fatalln("Error:", code, message)
}

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

go"2026/09/04 12:34:56 Error: 404 Not Found"

Пример

Сравним работу log.Fatalln и log.Fatal — в первом случае добавляется новая строка, а во втором нет:

gopackage main

import (
  "log"
)

func main() {
  log.Fatal("No newline")
  log.Fatalln("With newline")
}

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

go"2026/09/04 12:34:56 No newline"

Как видно, после вызова log.Fatal программа завершается, и второе сообщение не выводится. Но если бы оно вывелось, то оно имело бы символ новой строки в конце.

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

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