logutil

package
v2.293.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 30, 2021 License: Apache-2.0, MIT Imports: 21 Imported by: 0

Documentation

Overview

Example (Logall)
package main

import (
	"berty.tech/berty/v2/go/internal/logutil"
)

func main() {
	logger, cleanup, err := logutil.NewLogger(logutil.NewStdStream("*", "light-console", "stdout"))
	if err != nil {
		panic(err)
	}
	defer cleanup()

	logger.Debug("top debug")
	logger.Info("top info")
	logger.Warn("top warn")
	logger.Error("top error")

	logger.Named("foo").Debug("foo debug")
	logger.Named("foo").Info("foo info")
	logger.Named("foo").Warn("foo warn")
	logger.Named("foo").Error("foo error")

}
Output:

DEBUG	bty               	logutil/example_test.go:14	top debug
INFO 	bty               	logutil/example_test.go:15	top info
WARN 	bty               	logutil/example_test.go:16	top warn
ERROR	bty               	logutil/example_test.go:17	top error
DEBUG	bty.foo           	logutil/example_test.go:19	foo debug
INFO 	bty.foo           	logutil/example_test.go:20	foo info
WARN 	bty.foo           	logutil/example_test.go:21	foo warn
ERROR	bty.foo           	logutil/example_test.go:22	foo error
Example (Logerrors)
package main

import (
	"berty.tech/berty/v2/go/internal/logutil"
)

func main() {
	logger, cleanup, err := logutil.NewLogger(logutil.NewStdStream("error:*,-*.bar warn:*.bar", "light-console", "stdout"))
	if err != nil {
		panic(err)
	}
	defer cleanup()

	logger.Debug("top debug")
	logger.Info("top info")
	logger.Warn("top warn")
	logger.Error("top error")

	logger.Named("foo").Debug("foo debug")
	logger.Named("foo").Info("foo info")
	logger.Named("foo").Warn("foo warn")
	logger.Named("foo").Error("foo error")

	logger.Named("foo").Named("bar").Debug("foo.bar debug")
	logger.Named("foo").Named("bar").Info("foo.bar info")
	logger.Named("foo").Named("bar").Warn("foo.bar warn")
	logger.Named("foo").Named("bar").Error("foo.bar error")

}
Output:

ERROR	bty               	logutil/example_test.go:45	top error
ERROR	bty.foo           	logutil/example_test.go:50	foo error
WARN 	bty.foo.bar       	logutil/example_test.go:54	foo.bar warn

Index

Examples

Constants

View Source
const (
	Black uint8 = iota + 30
	Red
	Green
	Yellow
	Blue
	Magenta
	Cyan
	White
)

Variables

This section is empty.

Functions

func DecorateLogger

func DecorateLogger(base *zap.Logger, filters string) (*zap.Logger, func(), error)

DecorateLogger can be used by external packages to configure zapfilter and libp2p logging on an existing zap.Logger.

func LogfileGC added in v2.286.0

func LogfileGC(logDir string, max int) error

func NewLogger

func NewLogger(streams ...Stream) (*zap.Logger, func(), error)

Types

type Logfile added in v2.286.0

type Logfile struct {
	Dir    string
	Name   string
	Size   int64
	Kind   string
	Time   time.Time
	Latest bool
	Errs   error `json:"Errs,omitempty"`
}

func LogfileList added in v2.286.0

func LogfileList(logDir string) ([]*Logfile, error)

func (Logfile) Path added in v2.286.0

func (l Logfile) Path() string

type Stream added in v2.264.0

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

func NewCustomStream added in v2.287.0

func NewCustomStream(filters string, logger *zap.Logger) Stream

func NewFileStream added in v2.286.0

func NewFileStream(filters, format, path, sessionKind string) Stream

NewFileStream creates a new file stream backed by Lumberjack with sane default values.

Usually, Lumberjack is used as a rolling log file and is intended to be reused from a session to another, In Berty, we want one file per session named with the start time instead of the rotation time.

If the provided path is a directory, it will create files in that directory with the following pattern: `<path>/<session-kind>-<start-time>.log`.

If the provided path is a path finishing with ".log", then, the path will be taken as it, instead of creating a new file, it will append new lines to the existing one; this can be particularly useful to keep a `tail -f` running.

func NewRingStream added in v2.264.0

func NewRingStream(filters, format string, ring *zapring.Core) Stream

func NewStdStream added in v2.264.0

func NewStdStream(filters, format, path string) Stream

func NewTyberStream added in v2.285.0

func NewTyberStream(host string) Stream

type TyberLogger added in v2.285.0

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

func NewTyberLogger added in v2.285.0

func NewTyberLogger(host string) (*TyberLogger, error)

func (*TyberLogger) Close added in v2.285.0

func (l *TyberLogger) Close() error

func (*TyberLogger) Write added in v2.285.0

func (l *TyberLogger) Write(input []byte) (int, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL