Функция log.Flags

Функция log.Flags возвращает битовую маску текущих флагов, установленных для стандартного логгера пакета log. Эти флаги определяют, какая дополнительная информация будет добавляться к каждой записи лога: дата, время, путь к файлу и другие. Функция не принимает параметров и возвращает значение типа int, представляющее собой комбинацию констант флагов из пакета log.

Синтаксис

golog.Flags()

Пример

Давайте получим текущие флаги стандартного логгера:

gopackage main

import (
  "log"
  "fmt"
)

func main() {
  flags := log.Flags()
  fmt.Println(flags)
}

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

go"3"

Значение 3 означает, что установлены флаги log.Ldate (1) и log.Ltime (2), что соответствует стандартным настройкам логгера по умолчанию.

Пример

Давайте проверим, установлен ли конкретный флаг. Для этого используем битовую операцию И:

gopackage main

import (
  "log"
  "fmt"
)

func main() {
  flags := log.Flags()
  hasDate := flags & log.Ldate
  hasTime := flags & log.Ltime
  hasLongFile := flags & log.Llongfile

  fmt.Println(hasDate)
  fmt.Println(hasTime)
  fmt.Println(hasLongFile)
}

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

go"1"
"2"
"0"

Значение 1 указывает на наличие флага log.Ldate, значение 2 — log.Ltime, а 0 означает, что флаг log.Llongfile не установлен.

Пример

Давайте изменим флаги с помощью функции log.SetFlags и затем получим их новое значение:

gopackage main

import (
  "log"
  "fmt"
)

func main() {
  log.SetFlags(log.LstdFlags | log.Lshortfile)
  flags := log.Flags()
  fmt.Println(flags)
}

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

go"7"

Значение 7 соответствует комбинации флагов log.Ldate (1), log.Ltime (2) и log.Lshortfile (4), которые вместе дают 7.

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

  • функцию log.SetFlags,
    которая устанавливает флаги форматирования для логгера
  • функцию log.SetPrefix,
    которая устанавливает префикс для записей лога
  • функцию log.Println,
    которая выводит сообщение в лог с переходом на новую строку
  • константу log.LstdFlags,
    которая содержит стандартный набор флагов для логгера