logutil

package
v1.14.0 Latest Latest
Warning

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

Go to latest
Published: Aug 1, 2023 License: Apache-2.0, MIT Imports: 24 Imported by: 11

Documentation

Overview

Example (Logall)
package main

import (
	"berty.tech/weshnet/pkg/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/weshnet/pkg/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 CryptoKeyToBase64

func CryptoKeyToBase64(key crypto.Key) string

func CryptoKeyToBytes

func CryptoKeyToBytes(key crypto.Key) []byte

func CurrentLogfilePath

func CurrentLogfilePath(target string) (string, error)

func DisablePrivateFields

func DisablePrivateFields()

func LogfileGC

func LogfileGC(logDir string, max int) error

func NativeLog

func NativeLog(logLevel zapcore.Level, namespace string, message string)

func NewLogger

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

func NewNativeDriverCore

func NewNativeDriverCore(subsystem string, enc zapcore.Encoder) zapcore.Core

func NewNativeLogger

func NewNativeLogger(subsystem string) *zap.Logger

func PrivateAny

func PrivateAny(key string, value interface{}) zap.Field

func PrivateBinary

func PrivateBinary(key string, value []byte) zap.Field

func PrivateString

func PrivateString(key string, value string) zap.Field

func PrivateStringer

func PrivateStringer(key string, value fmt.Stringer) zap.Field

func PrivateStrings

func PrivateStrings(key string, value []string) zap.Field

func ReplaceGRPCLogger

func ReplaceGRPCLogger(l *zap.Logger)

func SetGlobal

func SetGlobal(namespace []byte, enabled bool)

Types

type Logfile

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

func LogfileList

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

func (Logfile) Path

func (l Logfile) Path() string

type PrivateField

type PrivateField struct {
	Namespace []byte
	Enabled   bool
}

func (*PrivateField) PrivateAny

func (p *PrivateField) PrivateAny(key string, value interface{}) zap.Field

func (*PrivateField) PrivateBinary

func (p *PrivateField) PrivateBinary(key string, value []byte) zap.Field

func (*PrivateField) PrivateString

func (p *PrivateField) PrivateString(key string, value string) zap.Field

func (*PrivateField) PrivateStringer

func (p *PrivateField) PrivateStringer(key string, value fmt.Stringer) zap.Field

func (*PrivateField) PrivateStrings

func (p *PrivateField) PrivateStrings(key string, values []string) zap.Field

type Stream

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

func NewCustomStream

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

func NewFileStream

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

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

func NewStdStream

func NewStdStream(filters, format, path string) Stream

Jump to

Keyboard shortcuts

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