basalttrail ⌥

Примеры

Примеры типичных задач. Код полный — импорт, создание Logger и обработка ошибок.

Info и SetLevel

Пишет запись уровня info.

Меняет уровень на лету. Возвращает false для неизвестного уровня.

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/basalttrail/basalttrail"
)

func main() {
	ctx := context.Background()

	l, err := basalttrail.New(basalttrail.Options{
		AddCaller: false,
	})
	if err != nil {
		log.Fatal(err)
	}
	defer l.Close()

	if err := l.Info(ctx, "сервер запущен"); err != nil {
		log.Fatal(err)
	}

	ok, err := l.SetLevel(ctx, "debug")
	if err != nil {
		log.Fatal(err)
	}
	fmt.Println(ok)
}

Sync и Error

Сбрасывает буферизованные записи.

Пишет запись уровня error.

package main

import (
	"context"
	"fmt"
	"log"

	"github.com/basalttrail/basalttrail"
)

func main() {
	ctx := context.Background()

	l, err := basalttrail.New(basalttrail.Options{
		Level:       "info",
		SampleFirst: 100,
	})
	if err != nil {
		log.Fatal(err)
	}
	defer l.Close()

	if err := l.Sync(ctx); err != nil {
		log.Fatal(err)
	}

	if err := l.Error(ctx, "платёж не прошёл"); err != nil {
		log.Fatal(err)
	}
}