Documentation ¶
Overview ¶
Example (Logall) ¶
package main import ( "berty.tech/weshnet/v2/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/v2/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 ¶
- Constants
- func CryptoKeyToBase64(key crypto.Key) string
- func CryptoKeyToBytes(key crypto.Key) []byte
- func CurrentLogfilePath(target string) (string, error)
- func DisablePrivateFields()
- func LogfileGC(logDir string, max int) error
- func NativeLog(logLevel zapcore.Level, namespace string, message string)
- func NewLogger(streams ...Stream) (*zap.Logger, func(), error)
- func NewNativeDriverCore(subsystem string, enc zapcore.Encoder) zapcore.Core
- func NewNativeLogger(subsystem string) *zap.Logger
- func PrivateAny(key string, value interface{}) zap.Field
- func PrivateBinary(key string, value []byte) zap.Field
- func PrivateString(key string, value string) zap.Field
- func PrivateStringer(key string, value fmt.Stringer) zap.Field
- func PrivateStrings(key string, value []string) zap.Field
- func ReplaceGRPCLogger(l *zap.Logger)
- func SetGlobal(namespace []byte, enabled bool)
- type Logfile
- type PrivateField
- func (p *PrivateField) PrivateAny(key string, value interface{}) zap.Field
- func (p *PrivateField) PrivateBinary(key string, value []byte) zap.Field
- func (p *PrivateField) PrivateString(key string, value string) zap.Field
- func (p *PrivateField) PrivateStringer(key string, value fmt.Stringer) zap.Field
- func (p *PrivateField) PrivateStrings(key string, values []string) zap.Field
- type Stream
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 CryptoKeyToBytes ¶
func CurrentLogfilePath ¶
func DisablePrivateFields ¶
func DisablePrivateFields()
func NewNativeDriverCore ¶
func NewNativeLogger ¶
func PrivateAny ¶
func ReplaceGRPCLogger ¶
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 ¶
type PrivateField ¶
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 (*PrivateField) PrivateStrings ¶
func (p *PrivateField) PrivateStrings(key string, values []string) zap.Field
type Stream ¶
type Stream struct {
// contains filtered or unexported fields
}
func NewFileStream ¶
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 NewStdStream ¶
Click to show internal directories.
Click to hide internal directories.