Spec-Zone.ru › Go

Пакет log

  • import "log"
  • Обзор
  • Указатель
  • Примеры
  • Подкаталоги

Обзор

Пакет log реализует простой пакет для ведения журналов. Он определяет тип Logger с методами форматирования вывода. В пакете также есть предварительно настроенный «стандартный» Logger, доступный через вспомогательные функции Print[f|ln], Fatal[f|ln] и Panic[f|ln], которыми проще пользоваться, чем создавать Logger вручную. Этот регистратор записывает данные в стандартный поток ошибок и выводит дату и время каждого сообщения журнала. Каждое сообщение журнала выводится на отдельной строке: если выводимое сообщение не заканчивается символом новой строки, регистратор добавит его. Функции Fatal вызывают os.Exit(1) после записи сообщения журнала. Функции Panic вызывают panic после записи сообщения журнала.

Указатель

  • Константы
  • func Fatal(v ...any)
  • func Fatalf(format string, v ...any)
  • func Fatalln(v ...any)
  • func Flags() int
  • func Output(calldepth int, s string) error
  • func Panic(v ...any)
  • func Panicf(format string, v ...any)
  • func Panicln(v ...any)
  • func Prefix() string
  • func Print(v ...any)
  • func Printf(format string, v ...any)
  • func Println(v ...any)
  • func SetFlags(flag int)
  • func SetOutput(w io.Writer)
  • func SetPrefix(prefix string)
  • func Writer() io.Writer
  • type Logger
  • func Default() *Logger
  • func New(out io.Writer, prefix string, flag int) *Logger
  • func (l *Logger) Fatal(v ...any)
  • func (l *Logger) Fatalf(format string, v ...any)
  • func (l *Logger) Fatalln(v ...any)
  • func (l *Logger) Flags() int
  • func (l *Logger) Output(calldepth int, s string) error
  • func (l *Logger) Panic(v ...any)
  • func (l *Logger) Panicf(format string, v ...any)
  • func (l *Logger) Panicln(v ...any)
  • func (l *Logger) Prefix() string
  • func (l *Logger) Print(v ...any)
  • func (l *Logger) Printf(format string, v ...any)
  • func (l *Logger) Println(v ...any)
  • func (l *Logger) SetFlags(flag int)
  • func (l *Logger) SetOutput(w io.Writer)
  • func (l *Logger) SetPrefix(prefix string)
  • func (l *Logger) Writer() io.Writer

Примеры

Logger
Logger.Output

Файлы пакета

log.go

Константы

Эти флаги определяют, какой текст добавляется в начало каждой записи журнала, созданной Logger. Биты объединяются операцией ИЛИ, чтобы управлять тем, что будет выведено. За исключением флага Lmsgprefix, нельзя управлять порядком их появления (здесь они перечислены именно в этом порядке) или форматом их представления (описанным в комментариях). Двоеточие добавляется после префикса только при указании Llongfile или Lshortfile. Например, флаги Ldate | Ltime (или LstdFlags) дают следующий результат:

2009/01/23 01:23:23 message

а флаги Ldate | Ltime | Lmicroseconds | Llongfile дают следующий результат:

2009/01/23 01:23:23.123123 /a/b/c/d.go:23: message
const (
    Ldate         = 1 << iota     // the date in the local time zone: 2009/01/23
    Ltime                         // the time in the local time zone: 01:23:23
    Lmicroseconds                 // microsecond resolution: 01:23:23.123123.  assumes Ltime.
    Llongfile                     // full file name and line number: /a/b/c/d.go:23
    Lshortfile                    // final file name element and line number: d.go:23. overrides Llongfile
    LUTC                          // if Ldate or Ltime is set, use UTC rather than the local time zone
    Lmsgprefix                    // move the "prefix" from the beginning of the line to before the message
    LstdFlags     = Ldate | Ltime // initial values for the standard logger
)

функция Fatal

func Fatal(v ...any)

Fatal эквивалентна вызову Print, за которым следует вызов os.Exit(1).

функция Fatalf

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

Fatalf эквивалентна вызову Printf, за которым следует вызов os.Exit(1).

функция Fatalln

func Fatalln(v ...any)

Fatalln эквивалентна вызову Println, за которым следует вызов os.Exit(1).

функция Flags

func Flags() int

Flags возвращает флаги вывода стандартного регистратора. Биты флагов — это Ldate, Ltime и так далее.

функция Output 1.5

func Output(calldepth int, s string) error

Output записывает вывод для события журналирования. Строка s содержит текст, который нужно вывести после префикса, заданного флагами Logger. Если последний символ строки s ещё не является символом новой строки, он добавляется. Calldepth задаёт количество кадров стека, которые нужно пропустить при вычислении имени файла и номера строки, если установлен флаг Llongfile или Lshortfile; значение 1 выведет сведения о вызывающем Output.

функция Panic

func Panic(v ...any)

Panic эквивалентна вызову Print, за которым следует вызов panic().

функция Panicf

func Panicf(format string, v ...any)

Panicf эквивалентна вызову Printf, за которым следует вызов panic().

функция Panicln

func Panicln(v ...any)

Panicln эквивалентна вызову Println, за которым следует вызов panic().

функция Prefix

func Prefix() string

Prefix возвращает префикс вывода стандартного регистратора.

функция Print

func Print(v ...any)

Print вызывает Output для вывода в стандартный регистратор. Аргументы обрабатываются так же, как в fmt.Print.

функция Printf

func Printf(format string, v ...any)

Printf вызывает Output для вывода в стандартный регистратор. Аргументы обрабатываются так же, как в fmt.Printf.

функция Println

func Println(v ...any)

Println вызывает Output для вывода в стандартный регистратор. Аргументы обрабатываются так же, как в fmt.Println.

функция SetFlags

func SetFlags(flag int)

SetFlags устанавливает флаги вывода стандартного регистратора. Биты флагов — это Ldate, Ltime и так далее.

функция SetOutput

func SetOutput(w io.Writer)

SetOutput задаёт место назначения вывода стандартного регистратора.

функция SetPrefix

func SetPrefix(prefix string)

SetPrefix задаёт префикс вывода стандартного регистратора.

функция Writer 1.13

func Writer() io.Writer

Writer возвращает место назначения вывода стандартного регистратора.

тип Logger

Logger представляет активный объект журналирования, который формирует строки вывода для io.Writer. Каждая операция журналирования выполняет один вызов метода Write объекта Writer. Logger можно одновременно использовать из нескольких горутин; он гарантирует последовательный доступ к Writer.

type Logger struct {
    // contains filtered or unexported fields
}

Пример

Код:

var (
    buf    bytes.Buffer
    logger = log.New(&buf, "logger: ", log.Lshortfile)
)

logger.Print("Hello, log file!")

fmt.Print(&buf)

Вывод:

logger: example_test.go:19: Hello, log file!

функция Default 1.16

func Default() *Logger

Default возвращает стандартный регистратор, используемый функциями вывода на уровне пакета.

функция New

func New(out io.Writer, prefix string, flag int) *Logger

New создаёт новый Logger. Переменная out задаёт место назначения, куда будут записываться данные журнала. Префикс появляется в начале каждой формируемой строки журнала или после заголовка журнала, если указан флаг Lmsgprefix. Аргумент flag задаёт свойства журналирования.

функция (*Logger) Fatal

func (l *Logger) Fatal(v ...any)

Fatal эквивалентна вызову l.Print(), за которым следует вызов os.Exit(1).

функция (*Logger) Fatalf

func (l *Logger) Fatalf(format string, v ...any)

Fatalf эквивалентна вызову l.Printf(), за которым следует вызов os.Exit(1).

функция (*Logger) Fatalln

func (l *Logger) Fatalln(v ...any)

Fatalln эквивалентна вызову l.Println(), за которым следует вызов os.Exit(1).

функция (*Logger) Flags

func (l *Logger) Flags() int

Flags возвращает флаги вывода регистратора. Биты флагов — это Ldate, Ltime и так далее.

функция (*Logger) Output

func (l *Logger) Output(calldepth int, s string) error

Output записывает вывод для события журналирования. Строка s содержит текст, который нужно вывести после префикса, заданного флагами Logger. Если последний символ строки s ещё не является символом новой строки, он добавляется. Calldepth используется для получения PC и предусмотрен для универсальности, хотя в настоящее время во всех предопределённых путях его значение равно 2.

Пример

Код:

var (
    buf    bytes.Buffer
    logger = log.New(&buf, "INFO: ", log.Lshortfile)

    infof = func(info string) {
        logger.Output(2, info)
    }
)

infof("Hello world")

fmt.Print(&buf)

Вывод:

INFO: example_test.go:36: Hello world

функция (*Logger) Panic

func (l *Logger) Panic(v ...any)

Panic эквивалентна вызову l.Print(), за которым следует вызов panic().

функция (*Logger) Panicf

func (l *Logger) Panicf(format string, v ...any)

Panicf эквивалентна вызову l.Printf(), за которым следует вызов panic().

функция (*Logger) Panicln

func (l *Logger) Panicln(v ...any)

Panicln эквивалентна вызову l.Println(), за которым следует вызов panic().

функция (*Logger) Prefix

func (l *Logger) Prefix() string

Prefix возвращает префикс вывода регистратора.

функция (*Logger) Print

func (l *Logger) Print(v ...any)

Print вызывает l.Output для вывода в регистратор. Аргументы обрабатываются так же, как в fmt.Print.

функция (*Logger) Printf

func (l *Logger) Printf(format string, v ...any)

Printf вызывает l.Output для вывода в регистратор. Аргументы обрабатываются так же, как в fmt.Printf.

функция (*Logger) Println

func (l *Logger) Println(v ...any)

Println вызывает l.Output для вывода в регистратор. Аргументы обрабатываются так же, как в fmt.Println.

функция (*Logger) SetFlags

func (l *Logger) SetFlags(flag int)

SetFlags устанавливает флаги вывода регистратора. Биты флагов — это Ldate, Ltime и так далее.

функция (*Logger) SetOutput 1.5

func (l *Logger) SetOutput(w io.Writer)

SetOutput задаёт место назначения вывода регистратора.

функция (*Logger) SetPrefix

func (l *Logger) SetPrefix(prefix string)

SetPrefix задаёт префикс вывода регистратора.

функция (*Logger) Writer 1.12

func (l *Logger) Writer() io.Writer

Writer возвращает место назначения вывода регистратора.

Подкаталоги

Имя Краткое описание
..
slog Пакет slog предоставляет структурированное журналирование, при котором записи журнала содержат сообщение, уровень важности и различные другие атрибуты, представленные в виде пар ключ-значение.
syslog Пакет syslog предоставляет простой интерфейс к системной службе журналирования.

© Google, Inc.
Licensed under the Creative Commons Attribution License 3.0.
http://golang.org/pkg/log/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API