Documentation ¶
Overview ¶
Package log provides the both file and console (general) logging capabilities to spacemesh modules such as app and identity.
Index ¶
- func Debug(msg string, args ...any)
- func DebugField(logger *zap.Logger, field zap.Field) zap.Field
- func ExtractRequestID(ctx context.Context) (string, bool)
- func ExtractSessionID(ctx context.Context) (string, bool)
- func Info(msg string, args ...any)
- func NiceZapError(err error) zap.Field
- func Panic(msg string, args ...any)
- func SetupGlobal(logger Log)
- func Warning(msg string, args ...any)
- func WithNewRequestID(ctx context.Context, fields ...LoggableField) context.Context
- func WithNewSessionID(ctx context.Context, fields ...LoggableField) context.Context
- func WithSessionID(ctx context.Context, sessionID string, fields ...LoggableField) context.Context
- func ZContext(ctx context.Context) zap.Field
- func ZShortStringer(name string, val ShortString) zap.Field
- type Field
- func Any(key string, value any) Field
- func Array(name string, array zapcore.ArrayMarshaler) Field
- func Duration(name string, val time.Duration) Field
- func Err(err error) Field
- func FieldNamed(name string, field LoggableField) Field
- func Inline(object zapcore.ObjectMarshaler) Field
- func ShortStringer(name string, val ShortString) Field
- func String(name, val string) Field
- func Stringer(name string, val fmt.Stringer) Field
- func Strings(name string, val []string) Field
- func Time(name string, val time.Time) Field
- func Uint16(name string, val uint16) Field
- func Uint32(name string, val uint32) Field
- type FieldLogger
- func (fl FieldLogger) Debug(msg string, fields ...LoggableField)
- func (fl FieldLogger) Error(msg string, fields ...LoggableField)
- func (fl FieldLogger) Info(msg string, fields ...LoggableField)
- func (fl FieldLogger) Panic(msg string, fields ...LoggableField)
- func (fl FieldLogger) Warning(msg string, fields ...LoggableField)
- type Log
- func (l Log) Check(level zapcore.Level) bool
- func (l Log) Debug(format string, args ...any)
- func (l Log) Error(format string, args ...any)
- func (l Log) Fatal(format string, args ...any)
- func (l Log) Info(format string, args ...any)
- func (l Log) Named(name string) Log
- func (l Log) Panic(format string, args ...any)
- func (l Log) SetLevel(level *zap.AtomicLevel) Log
- func (l Log) Warning(format string, args ...any)
- func (l Log) With() FieldLogger
- func (l Log) WithContext(ctx context.Context) Log
- func (l Log) WithFields(fields ...LoggableField) Log
- func (l Log) WithName(prefix string) Log
- func (l Log) Zap() *zap.Logger
- type LoggableField
- type Logger
- type ShortString
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DebugField ¶ added in v1.6.0
DebugField is only added if debug level is enabled.
func ExtractRequestID ¶ added in v0.1.27
ExtractRequestID extracts the request id from a context object.
func ExtractSessionID ¶ added in v0.1.27
ExtractSessionID extracts the session id from a context object.
func NiceZapError ¶ added in v1.4.0
func SetupGlobal ¶ added in v1.0.0
func SetupGlobal(logger Log)
SetupGlobal overwrites global logger.
func WithNewRequestID ¶ added in v0.1.27
func WithNewRequestID(ctx context.Context, fields ...LoggableField) context.Context
WithNewRequestID does the same thing as WithRequestID but generates a new, random requestId. It can be used when there isn't a single, clear, unique id associated with a request (e.g., a block or tx hash).
func WithNewSessionID ¶ added in v0.1.27
func WithNewSessionID(ctx context.Context, fields ...LoggableField) context.Context
WithNewSessionID does the same thing as WithSessionID but generates a new, random sessionId. It can be used when there isn't a single, clear, unique id associated with a session.
func WithSessionID ¶ added in v0.1.27
WithSessionID returns a context which knows its session ID A session ID tracks a single thread of execution. This may include multiple goroutines running concurrently, but it does not include asynchronous task execution such as task queues handled in separate threads. The canonical example is a single protocol routine, down to the point where an incoming request is either handled, or else handed off to another routine via a channel. Rule of thumb: sessions live entirely on the stack, and never on the heap (and should not be passed over channels). This requires a sessionId string, and optionally, other LoggableFields that are added to context and printed in contextual logs.
func ZShortStringer ¶ added in v1.0.0
func ZShortStringer(name string, val ShortString) zap.Field
Types ¶
type Field ¶
Field is a log field holding a name and value.
func Array ¶ added in v1.0.0
func Array(name string, array zapcore.ArrayMarshaler) Field
Array for logging array efficiently.
func FieldNamed ¶ added in v0.1.15
func FieldNamed(name string, field LoggableField) Field
FieldNamed returns a field with the provided name instead of the default.
func Inline ¶ added in v1.0.0
func Inline(object zapcore.ObjectMarshaler) Field
Inline for inline logging.
func ShortStringer ¶ added in v1.0.0
func ShortStringer(name string, val ShortString) Field
func (Field) AddTo ¶ added in v1.0.0
func (f Field) AddTo(enc zapcore.ObjectEncoder)
type FieldLogger ¶ added in v0.1.11
type FieldLogger struct {
// contains filtered or unexported fields
}
FieldLogger is a logger that only logs messages with fields. It does not support formatting.
func (FieldLogger) Debug ¶ added in v0.1.11
func (fl FieldLogger) Debug(msg string, fields ...LoggableField)
Debug prints message with fields.
func (FieldLogger) Error ¶ added in v0.1.11
func (fl FieldLogger) Error(msg string, fields ...LoggableField)
Error prints message with fields.
func (FieldLogger) Info ¶ added in v0.1.11
func (fl FieldLogger) Info(msg string, fields ...LoggableField)
Info prints message with fields.
func (FieldLogger) Panic ¶ added in v0.1.27
func (fl FieldLogger) Panic(msg string, fields ...LoggableField)
Panic prints message with fields.
func (FieldLogger) Warning ¶ added in v0.1.11
func (fl FieldLogger) Warning(msg string, fields ...LoggableField)
Warning prints message with fields.
type Log ¶
type Log struct {
// contains filtered or unexported fields
}
Log is an exported type that embeds our logger.
var (
AppLog Log
)
AppLog is the local app singleton logger.
func NewFromLog ¶ added in v0.1.15
NewFromLog creates a Log from an existing zap-compatible log.
func NewWithLevel ¶ added in v0.1.15
func NewWithLevel(module string, level zap.AtomicLevel, encoder zapcore.Encoder, hooks ...func(zapcore.Entry) error, ) Log
NewWithLevel creates a logger with a fixed level and with a set of (optional) hooks.
func (Log) SetLevel ¶ added in v0.1.2
func (l Log) SetLevel(level *zap.AtomicLevel) Log
SetLevel returns a logger with level as the log level derived from l.
func (Log) WithContext ¶ added in v0.1.27
WithContext creates a Log from an existing log and a context object.
func (Log) WithFields ¶
func (l Log) WithFields(fields ...LoggableField) Log
WithFields returns a logger with fields permanently appended to it.
type LoggableField ¶ added in v0.1.2
type LoggableField interface {
Field() Field
}
LoggableField as an interface to enable every type to be used as a log field.
func ExtractRequestFields ¶ added in v0.1.27
func ExtractRequestFields(ctx context.Context) (fields []LoggableField)
ExtractRequestFields extracts additional loggable fields associated with the request from a context object.
func ExtractSessionFields ¶ added in v0.1.27
func ExtractSessionFields(ctx context.Context) (fields []LoggableField)
ExtractSessionFields extracts additional loggable fields associated with the session from a context object.
type Logger ¶
type Logger interface { Info(format string, args ...any) Debug(format string, args ...any) Panic(format string, args ...any) Error(format string, args ...any) Warning(format string, args ...any) With() FieldLogger WithContext(context.Context) Log WithName(string) Log }
Logger is an interface for our logging API.
type ShortString ¶ added in v1.0.0
type ShortString interface {
ShortString() string
}