Пакет log
Обзор
Пакет log реализует простой пакет ведения журнала. Он определяет тип Logger с методами для форматирования вывода. Он также имеет предопределённый стандартный Logger, доступный через вспомогательные функции Print[f|ln], Fatal[f|ln] и Panic[f|ln], которые проще в использовании, чем создание Logger вручную. Этот логгер записывает в стандартный поток ошибок и выводит дату и время каждого сообщения журнала. Каждое сообщение журнала выводится на новой строке: если выводимое сообщение не заканчивается символом новой строки, логгер добавит его. Функции Fatal вызывают os.Exit(1) после записи сообщения журнала. Функции Panic вызывают panic после записи сообщения журнала.
Индекс
Примеры
Файлы пакета
log.go
Константы
Эти флаги определяют, какой текст предварять каждую запись журнала, генерируемую Logger. Блоки объединяются операцией OR для управления тем, что выводится. За исключением флага 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
) func Fatal
func Fatal(v ...any)
Fatal эквивалентен Print с последующим вызовом os.Exit(1).
func Fatalf
func Fatalf(format string, v ...any)
Fatalf эквивалентен Printf с последующим вызовом os.Exit(1).
func Fatalln
func Fatalln(v ...any)
Fatalln эквивалентен Println с последующим вызовом os.Exit(1).
func Flags
func Flags() int
Flags возвращает флаги вывода для стандартного логгера. Флаги битов — Ldate, Ltime и так далее.
func Output 1.5
func Output(calldepth int, s string) error
Output записывает вывод для события ведения журнала. Строка s содержит текст для печати после префикса, заданного флагами Logger. Новая строка добавляется, если последний символ s не является уже новой строкой. Calldepth — это количество кадров, которые нужно пропустить при вычислении имени файла и номера строки, если установлен Llongfile или Lshortfile; значение 1 выведет подробности для вызывающей Output функции.
func Panic
func Panic(v ...any)
Panic эквивалентен Print с последующим вызовом panic().
func Panicf
func Panicf(format string, v ...any)
Panicf эквивалентен Printf с последующим вызовом panic().
func Panicln
func Panicln(v ...any)
Panicln эквивалентен Println с последующим вызовом panic().
func Prefix
func Prefix() string
Prefix возвращает префикс вывода для стандартного логгера.
func Print
func Print(v ...any)
Print вызывает Output для печати в стандартный логгер. Аргументы обрабатываются так же, как в fmt.Print.
func Printf
func Printf(format string, v ...any)
Printf вызывает Output для печати в стандартный логгер. Аргументы обрабатываются так же, как в fmt.Printf.
func Println
func Println(v ...any)
Println вызывает Output для печати в стандартный логгер. Аргументы обрабатываются так же, как в fmt.Println.
func SetFlags
func SetFlags(flag int)
SetFlags устанавливает флаги вывода для стандартного логгера. Флаги битов — Ldate, Ltime и так далее.
func SetOutput
func SetOutput(w io.Writer)
SetOutput устанавливает место назначения вывода для стандартного логгера.
func SetPrefix
func SetPrefix(prefix string)
SetPrefix устанавливает префикс вывода для стандартного логгера.
func 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!
func Default 1.16
func Default() *Logger
Default возвращает стандартный логгер, используемый функциями вывода пакета.
func New
func New(out io.Writer, prefix string, flag int) *Logger
New создаёт новый Logger. Переменная out устанавливает место назначения, в которое будут записываться данные журнала. Префикс появляется в начале каждой строки генерируемого журнала или после заголовка журнала, если задан флаг Lmsgprefix. Аргумент flag определяет свойства ведения журнала.
func (*Logger) Fatal
func (l *Logger) Fatal(v ...any)
Fatal эквивалентен l.Print() с последующим вызовом os.Exit(1).
func (*Logger) Fatalf
func (l *Logger) Fatalf(format string, v ...any)
Fatalf эквивалентен l.Printf() с последующим вызовом os.Exit(1).
func (*Logger) Fatalln
func (l *Logger) Fatalln(v ...any)
Fatalln эквивалентен l.Println() с последующим вызовом os.Exit(1).
func (*Logger) Flags
func (l *Logger) Flags() int
Flags возвращает флаги вывода для логгера. Флаги битов — Ldate, Ltime и так далее.
func (*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
func (*Logger) Panic
func (l *Logger) Panic(v ...any)
Panic эквивалентен l.Print() с последующим вызовом panic().
func (*Logger) Panicf
func (l *Logger) Panicf(format string, v ...any)
Panicf эквивалентен l.Printf() с последующим вызовом panic().
func (*Logger) Panicln
func (l *Logger) Panicln(v ...any)
Panicln эквивалентен l.Println() с последующим вызовом panic().
func (*Logger) Prefix
func (l *Logger) Prefix() string
Prefix возвращает префикс вывода для логгера.
func (*Logger) Print
func (l *Logger) Print(v ...any)
Print вызывает l.Output для печати в логгер. Аргументы обрабатываются так же, как в fmt.Print.
func (*Logger) Printf
func (l *Logger) Printf(format string, v ...any)
Printf вызывает l.Output для печати в логгер. Аргументы обрабатываются так же, как в fmt.Printf.
func (*Logger) Println
func (l *Logger) Println(v ...any)
Println вызывает l.Output для печати в логгер. Аргументы обрабатываются так же, как в fmt.Println.
func (*Logger) SetFlags
func (l *Logger) SetFlags(flag int)
SetFlags устанавливает флаги вывода для логгера. Флаги битов — Ldate, Ltime и так далее.
func (*Logger) SetOutput 1.5
func (l *Logger) SetOutput(w io.Writer)
SetOutput устанавливает место назначения вывода для логгера.
func (*Logger) SetPrefix
func (l *Logger) SetPrefix(prefix string)
SetPrefix устанавливает префикс вывода для логгера.
func (*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/