Documentation ¶
Overview ¶
Package log is the logging library used by IPFS & libp2p (https://github.com/ipfs/go-ipfs).
Index ¶
- Variables
- func FormatRFC3339(t time.Time) string
- func GetSubsystems() []string
- func NopLogger() *zap.SugaredLogger
- func SetAllLoggers(lvl LogLevel)
- func SetDebugLogging()
- func SetLogLevel(name, level string) error
- func SetLogLevelRegex(e, l string) error
- func SetPrimaryCore(core zapcore.Core)
- func SetupLogging(cfg Config)
- func TestingLogger() *zap.SugaredLogger
- type Config
- type EventLogger
- type LogFormat
- type LogLevel
- type PipeReader
- type PipeReaderOption
- type StandardLogger
- type ZapEventLogger
Constants ¶
This section is empty.
Variables ¶
var ( LevelDebug = LogLevel(zapcore.DebugLevel) LevelInfo = LogLevel(zapcore.InfoLevel) LevelWarn = LogLevel(zapcore.WarnLevel) LevelError = LogLevel(zapcore.ErrorLevel) LevelDPanic = LogLevel(zapcore.DPanicLevel) LevelPanic = LogLevel(zapcore.PanicLevel) LevelFatal = LogLevel(zapcore.FatalLevel) )
var ErrNoSuchLogger = errors.New("error: No such logger")
ErrNoSuchLogger is returned when the util pkg is asked for a non existant logger
Functions ¶
func FormatRFC3339 ¶
FormatRFC3339 returns the given time in UTC with RFC3999Nano format.
func GetSubsystems ¶
func GetSubsystems() []string
GetSubsystems returns a slice containing the names of the current loggers
func NopLogger ¶ added in v2.3.1
func NopLogger() *zap.SugaredLogger
NopLogger returns a no-op Logger. It never writes out logs or internal errors.
func SetAllLoggers ¶
func SetAllLoggers(lvl LogLevel)
SetAllLoggers changes the logging level of all loggers to lvl
func SetDebugLogging ¶
func SetDebugLogging()
SetDebugLogging calls SetAllLoggers with logging.DEBUG
func SetLogLevel ¶
SetLogLevel changes the log level of a specific subsystem name=="*" changes all subsystems
func SetLogLevelRegex ¶
SetLogLevelRegex sets all loggers to level `l` that match expression `e`. An error is returned if `e` fails to compile.
func SetPrimaryCore ¶ added in v2.3.0
SetPrimaryCore changes the primary logging core. If the SetupLogging was called then the previously configured core will be replaced.
func SetupLogging ¶
func SetupLogging(cfg Config)
SetupLogging will initialize the logger backend and set the flags. TODO calling this in `init` pushes all configuration to env variables - move it out of `init`? then we need to change all the code (js-ipfs, go-ipfs) to call this explicitly - have it look for a config file? need to define what that is
func TestingLogger ¶ added in v2.3.1
func TestingLogger() *zap.SugaredLogger
TestingLogger returns a Logger which writes to STDOUT if test(s) are being run with the verbose (-v) flag, NopLogger otherwise.
NOTE: - A call to NewTestingLogger() must be made inside a test (not in the init func) because verbose flag only set at the time of testing.
Types ¶
type Config ¶
type Config struct { // Format overrides the format of the log output. Defaults to ColorizedOutput Format LogFormat // AutoColor automatically switches between formats and their colorized counterparts // (ColorizedOutput <-> PlaintextOutput, ColorizedCompactOutput <-> CompactOutput), // if the current program is run from a terminal it switches to the colorized version, vice versa. AutoColor bool // Level is the default minimum enabled logging level. Level LogLevel // SubsystemLevels are the default levels per-subsystem. When unspecified, defaults to Level. SubsystemLevels map[string]LogLevel // Sampling configs log sampling, disabled if nil. Sampling *zap.SamplingConfig // Stdout indicates whether logs should be written to stdout. Stdout bool // Stderr indicates whether logs should be written to stderr. Stderr bool // File is a path to a file that logs will be written to. File string // Lumberjack configs log rolling using Lumberjack, disabled if nil. // Lumberjack.Filename will be ignored and set to File. Lumberjack *lumberjack.Logger // URL with schema supported by zap. Use zap.RegisterSink URL string // AutoStdout automatically enables stdout output if the current program is // run from a terminal, or ((File is not set or not correct) and (URL is not set)). AutoStdout bool // Labels is a set of key-values to apply to all loggers Labels map[string]string }
type EventLogger ¶
type EventLogger interface { StandardLogger }
EventLogger extends the StandardLogger interface to allow for log items containing structured metadata
type LogLevel ¶
LogLevel represents a log severity level. Use the package variables as an enum.
func LevelFromString ¶
LevelFromString parses a string-based level and returns the corresponding LogLevel.
Supported strings are: DEBUG, INFO, WARN, ERROR, DPANIC, PANIC, FATAL, and their lower-case forms.
The returned LogLevel must be discarded if error is not nil.
type PipeReader ¶
type PipeReader struct {
// contains filtered or unexported fields
}
A PipeReader is a reader that reads from the logger. It is synchronous so blocking on read will affect logging performance.
func NewPipeReader ¶
func NewPipeReader(opts ...PipeReaderOption) *PipeReader
NewPipeReader creates a new in-memory reader that reads from all loggers The caller must call Close on the returned reader when done.
By default, it:
- Logs JSON. This can be changed by passing the PipeFormat option.
- Logs everything that would otherwise be logged to the "primary" log output. That is, everything enabled by SetLogLevel. The minimum log level can be increased by passing the PipeLevel option.
func (*PipeReader) Close ¶
func (p *PipeReader) Close() error
Close unregisters the reader from the logger.
type PipeReaderOption ¶
type PipeReaderOption interface {
// contains filtered or unexported methods
}
func PipeFormat ¶
func PipeFormat(format LogFormat) PipeReaderOption
PipeFormat sets the output format of the pipe reader
func PipeLevel ¶
func PipeLevel(level LogLevel) PipeReaderOption
PipeLevel sets the log level of logs sent to the pipe reader.
type StandardLogger ¶
type StandardLogger interface { Debug(args ...interface{}) Debugf(format string, args ...interface{}) Error(args ...interface{}) Errorf(format string, args ...interface{}) Fatal(args ...interface{}) Fatalf(format string, args ...interface{}) Info(args ...interface{}) Infof(format string, args ...interface{}) Panic(args ...interface{}) Panicf(format string, args ...interface{}) Warn(args ...interface{}) Warnf(format string, args ...interface{}) }
StandardLogger provides API compatibility with standard printf loggers eg. go-logging
type ZapEventLogger ¶
type ZapEventLogger struct { zap.SugaredLogger // contains filtered or unexported fields }
ZapEventLogger implements the EventLogger and wraps a go-logging Logger
func WithStacktrace ¶ added in v2.3.0
func WithStacktrace(l *ZapEventLogger, level LogLevel) *ZapEventLogger
func (*ZapEventLogger) Warning ¶
func (logger *ZapEventLogger) Warning(args ...interface{})
Warning is for compatibility Deprecated: use Warn(args ...interface{}) instead
func (*ZapEventLogger) Warningf ¶
func (logger *ZapEventLogger) Warningf(format string, args ...interface{})
Warningf is for compatibility Deprecated: use Warnf(format string, args ...interface{}) instead
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Modified from: https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/console_encoder.go
|
Modified from: https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/console_encoder.go |
zap_private
|
|
_internal/bufferpool
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/internal/bufferpool/bufferpool.go Package bufferpool houses zap's shared internal buffer pool.
|
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/internal/bufferpool/bufferpool.go Package bufferpool houses zap's shared internal buffer pool. |
_internal/color
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/internal/color/color.go Package color adds coloring functionality for TTY output.
|
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/internal/color/color.go Package color adds coloring functionality for TTY output. |
zapcore
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/json_encoder.go https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/level_strings.go
|
https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/json_encoder.go https://github.com/uber-go/zap/blob/7b21229fb3f063275f4f169f8a79ad30aa001c51/zapcore/level_strings.go |