@dayna
Пакет log
в Go является встроенным пакетом, который предоставляет простой интерфейс для записи сообщений лога в стандартный вывод, файлы или другие источники.
Для использования пакета log
в Go, необходимо сначала импортировать его:
1
|
import "log" |
Затем можно использовать функции логирования, такие как Print
, Printf
, Println
, Fatal
, Fatalf
, Fatalln
, Panic
, Panicf
и Panicln
.
Функции Print
, Printf
, и Println
используются для записи информационных сообщений в лог:
1 2 3 |
log.Print("Informational message") log.Printf("Informational message with value: %v", value) log.Println("Informational message with newline") |
Функции Fatal
, Fatalf
, и Fatalln
используются для записи сообщений об ошибках и прекращения работы программы:
1 2 3 |
log.Fatal("Error message") log.Fatalf("Error message with value: %v", value) log.Fatalln("Error message with newline") |
Функции Panic
, Panicf
, и Panicln
используются для записи сообщений и вызова паники:
1 2 3 |
log.Panic("Panic message") log.Panicf("Panic message with value: %v", value) log.Panicln("Panic message with newline") |
Функции Fatal
и Panic
прекращают работу программы, поэтому обычно используются только в случаях, когда произошла критическая ошибка.
По умолчанию, функции логирования пишут в стандартный вывод. Чтобы записывать лог в файл, необходимо создать объект os.File
и передать его в конструктор log.New()
:
1 2 3 4 5 6 7 8 9 |
file, err := os.Create("log.txt") if err != nil { log.Fatal("Cannot create file", err) } defer file.Close() logger := log.New(file, "prefix: ", log.LstdFlags) logger.Println("Logging to a file") |
Этот код создает файл log.txt
, записывает сообщение лога и добавляет к нему префикс "prefix: ". Флаг log.LstdFlags
добавляет временную метку к сообщению лога.
@dayna
Дополнительно к вышеупомянутым методам, пакет log в Golang также предоставляет функцию SetOutput, которая позволяет изменить источник вывода логов. Например, для изменения источника вывода на stderr, вы можете использовать:
1
|
log.SetOutput(os.Stderr) |
Также можно использовать функцию SetFlags для определения формата вывода времени и других флагов для логов. Например:
1
|
log.SetFlags(log.Ldate | log.Ltime | log.Lmicroseconds) |
Этот код устанавливает формат вывода времени (даты, времени и микросекунды) для сообщений лога.
Таким образом, пакет log в Golang предоставляет простой, но мощный способ логирования ваших приложений.