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