Функция log.Fatalln
Функция log.Fatalln выводит переданное сообщение в стандартный поток ошибок и немедленно завершает выполнение программы с кодом состояния 1. В отличие от log.Fatal, который работает аналогично fmt.Print, функция log.Fatalln добавляет символ новой строки в конце сообщения, подобно fmt.Println. В качестве параметров она принимает произвольное количество аргументов любого типа, которые форматируются стандартным образом.
Важно отметить, что после вызова log.Fatalln отложенные функции (defer) не выполняются, а горутины завершаются без остановки. Это делает функцию полезной для критических ошибок, когда дальнейшее выполнение программы невозможно.
Синтаксис
log.Fatalln(args ...any)
Пример
Давайте выведем простое сообщение об ошибке и завершим программу:
package main
import (
"log"
)
func main() {
log.Fatalln("Critical error occurred")
}
Результат выполнения кода:
"2026/09/04 12:34:56 Critical error occurred"
Обратите внимание, что сообщение предваряется временной меткой, добавляемой стандартным логгером, а программа завершается с кодом 1.
Пример
Давайте выведем несколько аргументов разных типов:
package main
import (
"log"
)
func main() {
code := 404
message := "Not Found"
log.Fatalln("Error:", code, message)
}
Результат выполнения кода:
"2026/09/04 12:34:56 Error: 404 Not Found"
Пример
Сравним работу log.Fatalln и log.Fatal — в первом случае добавляется новая строка, а во втором нет:
package main
import (
"log"
)
func main() {
log.Fatal("No newline")
log.Fatalln("With newline")
}
Результат выполнения кода:
"2026/09/04 12:34:56 No newline"
Как видно, после вызова log.Fatal программа завершается, и второе сообщение не выводится. Но если бы оно вывелось, то оно имело бы символ новой строки в конце.
Смотрите также
-
функцию
log.Fatal,
которая выводит сообщение без добавления новой строки и завершает программу -
функцию
log.Fatalf,
которая выводит форматированное сообщение и завершает программу -
функцию
log.Println,
которая выводит сообщение с новой строкой, но не завершает программу -
функцию
log.Print,
которая выводит сообщение без новой строки и не завершает программу