Documentation ¶
Index ¶
- Constants
- Variables
- func IsDevBuild() bool
- func IsProdBuild() bool
- func NewSubLogger(subsystem string, genSubLogger func(string) btclog.Logger) btclog.Logger
- func ParseAndSetDebugLevels(level string, logger LeveledSubLogger) error
- func Tags() []string
- func Version() string
- type DeploymentType
- type LeveledSubLogger
- type LogType
- type LogWriter
- type PrefixLog
- func (p *PrefixLog) Critical(v ...interface{})
- func (p *PrefixLog) Criticalf(format string, params ...interface{})
- func (p *PrefixLog) Debug(v ...interface{})
- func (p *PrefixLog) Debugf(format string, params ...interface{})
- func (p *PrefixLog) Error(v ...interface{})
- func (p *PrefixLog) Errorf(format string, params ...interface{})
- func (p *PrefixLog) Info(v ...interface{})
- func (p *PrefixLog) Infof(format string, params ...interface{})
- func (p *PrefixLog) Level() btclog.Level
- func (p *PrefixLog) SetLevel(level btclog.Level)
- func (p *PrefixLog) Trace(v ...interface{})
- func (p *PrefixLog) Tracef(format string, params ...interface{})
- func (p *PrefixLog) Warn(v ...interface{})
- func (p *PrefixLog) Warnf(format string, params ...interface{})
- type RotatingLogWriter
- func (r *RotatingLogWriter) Close() error
- func (r *RotatingLogWriter) GenSubLogger(tag string, shutdown func()) btclog.Logger
- func (r *RotatingLogWriter) InitLogRotator(logFile string, maxLogFileSize int, maxLogFiles int) error
- func (r *RotatingLogWriter) RegisterSubLogger(subsystem string, logger btclog.Logger)
- func (r *RotatingLogWriter) SetLogLevel(subsystemID string, logLevel string)
- func (r *RotatingLogWriter) SetLogLevels(logLevel string)
- func (r *RotatingLogWriter) SubLoggers() SubLoggers
- func (r *RotatingLogWriter) SupportedSubsystems() []string
- type ShutdownLogger
- type SubLoggers
Constants ¶
const ( // AppMajor defines the major version of this binary. AppMajor uint = 0 // AppMinor defines the minor version of this binary. AppMinor uint = 14 // AppPatch defines the application patch for this binary. AppPatch uint = 2 // AppPreRelease MUST only contain characters from semanticAlphabet // per the semantic versioning spec. AppPreRelease = "beta" )
These constants define the application version and follow the semantic versioning 2.0.0 spec (http://semver.org/).
const Deployment = Production
Deployment specifies a production build.
const LoggingType = LogTypeDefault
LoggingType is a log type that writes to both stdout and the log rotator, if present.
Variables ¶
var ( // Commit stores the current commit of this build, which includes the // most recent tag, the number of commits since that tag (if non-zero), // the commit hash, and a dirty marker. This should be set using the // -ldflags during compilation. Commit string // CommitHash stores the current commit hash of this build, this should // be set using the -ldflags during compilation. CommitHash string // RawTags contains the raw set of build tags, separated by commas. This // should be set using -ldflags during compilation. RawTags string // GoVersion stores the go version that the executable was compiled // with. This hsould be set using -ldflags during compilation. GoVersion string )
var LogLevel = "info"
LogLevel specifies a default log level of info.
Functions ¶
func NewSubLogger ¶
NewSubLogger constructs a new subsystem log from the current LogWriter implementation. This is primarily intended for use with stdlog, as the actual writer is shared amongst all instantiations.
func ParseAndSetDebugLevels ¶
func ParseAndSetDebugLevels(level string, logger LeveledSubLogger) error
ParseAndSetDebugLevels attempts to parse the specified debug level and set the levels accordingly on the given logger. An appropriate error is returned if anything is invalid.
func Tags ¶
func Tags() []string
Tags returns the list of build tags that were compiled into the executable.
func Version ¶
func Version() string
Version returns the application version as a properly formed string per the semantic versioning 2.0.0 spec (http://semver.org/).
Types ¶
type DeploymentType ¶
type DeploymentType byte
DeploymentType is an enum specifying the deployment to compile.
const ( // Development is a deployment that includes extra testing hooks and // logging configurations. Development DeploymentType = iota // Production is a deployment that strips out testing logic and uses // Default logging. Production )
func (DeploymentType) String ¶
func (b DeploymentType) String() string
String returns a human readable name for a build type.
type LeveledSubLogger ¶
type LeveledSubLogger interface { // SubLoggers returns the map of all registered subsystem loggers. SubLoggers() SubLoggers // SupportedSubsystems returns a slice of strings containing the names // of the supported subsystems. Should ideally correspond to the keys // of the subsystem logger map and be sorted. SupportedSubsystems() []string // SetLogLevel assigns an individual subsystem logger a new log level. SetLogLevel(subsystemID string, logLevel string) // SetLogLevels assigns all subsystem loggers the same new log level. SetLogLevels(logLevel string) }
LeveledSubLogger provides the ability to retrieve the subsystem loggers of a logger and set their log levels individually or all at once.
type LogType ¶
type LogType byte
LogType is an indicating the type of logging specified by the build flag.
type LogWriter ¶
type LogWriter struct { // RotatorPipe is the write-end pipe for writing to the log rotator. It // is written to by the Write method of the LogWriter type. This only // needs to be set if neither the stdlog or nolog builds are set. RotatorPipe *io.PipeWriter }
LogWriter is a stub type whose behavior can be changed using the build flags "stdlog" and "nolog". The default behavior is to write to both stdout and the RotatorPipe. Passing "stdlog" will cause it only to write to stdout, and "nolog" implements Write as a no-op.
type PrefixLog ¶
type PrefixLog struct {
// contains filtered or unexported fields
}
PrefixLog is a pass-through logger that adds a prefix to every logged line.
func NewPrefixLog ¶
NewPrefixLog instantiates a new prefixed logger.
func (*PrefixLog) Critical ¶
func (p *PrefixLog) Critical(v ...interface{})
Critical formats message using the default formats for its operands and writes to log with LevelCritical.
func (*PrefixLog) Criticalf ¶
Criticalf formats message according to format specifier and writes to log with LevelCritical.
func (*PrefixLog) Debug ¶
func (p *PrefixLog) Debug(v ...interface{})
Debug formats message using the default formats for its operands and writes to log with LevelDebug.
func (*PrefixLog) Debugf ¶
Debugf formats message according to format specifier and writes to log with LevelDebug.
func (*PrefixLog) Error ¶
func (p *PrefixLog) Error(v ...interface{})
Error formats message using the default formats for its operands and writes to log with LevelError.
func (*PrefixLog) Errorf ¶
Errorf formats message according to format specifier and writes to to log with LevelError.
func (*PrefixLog) Info ¶
func (p *PrefixLog) Info(v ...interface{})
Info formats message using the default formats for its operands and writes to log with LevelInfo.
func (*PrefixLog) Infof ¶
Infof formats message according to format specifier and writes to log with LevelInfo.
func (*PrefixLog) Trace ¶
func (p *PrefixLog) Trace(v ...interface{})
Trace formats message using the default formats for its operands and writes to log with LevelTrace.
func (*PrefixLog) Tracef ¶
Tracef formats message according to format specifier and writes to to log with LevelTrace.
type RotatingLogWriter ¶
type RotatingLogWriter struct {
// contains filtered or unexported fields
}
RotatingLogWriter is a wrapper around the LogWriter that supports log file rotation.
func NewRotatingLogWriter ¶
func NewRotatingLogWriter() *RotatingLogWriter
NewRotatingLogWriter creates a new file rotating log writer.
NOTE: `InitLogRotator` must be called to set up log rotation after creating the writer.
func (*RotatingLogWriter) Close ¶
func (r *RotatingLogWriter) Close() error
Close closes the underlying log rotator if it has already been created.
func (*RotatingLogWriter) GenSubLogger ¶
func (r *RotatingLogWriter) GenSubLogger(tag string, shutdown func()) btclog.Logger
GenSubLogger creates a new sublogger. A shutdown callback function is provided to be able to shutdown in case of a critical error.
func (*RotatingLogWriter) InitLogRotator ¶
func (r *RotatingLogWriter) InitLogRotator(logFile string, maxLogFileSize int, maxLogFiles int) error
InitLogRotator initializes the log file rotator to write logs to logFile and create roll files in the same directory. It should be called as early on startup and possible and must be closed on shutdown by calling `Close`.
func (*RotatingLogWriter) RegisterSubLogger ¶
func (r *RotatingLogWriter) RegisterSubLogger(subsystem string, logger btclog.Logger)
RegisterSubLogger registers a new subsystem logger.
func (*RotatingLogWriter) SetLogLevel ¶
func (r *RotatingLogWriter) SetLogLevel(subsystemID string, logLevel string)
SetLogLevel sets the logging level for provided subsystem. Invalid subsystems are ignored. Uninitialized subsystems are dynamically created as needed.
NOTE: This is part of the LeveledSubLogger interface.
func (*RotatingLogWriter) SetLogLevels ¶
func (r *RotatingLogWriter) SetLogLevels(logLevel string)
SetLogLevels sets the log level for all subsystem loggers to the passed level. It also dynamically creates the subsystem loggers as needed, so it can be used to initialize the logging system.
NOTE: This is part of the LeveledSubLogger interface.
func (*RotatingLogWriter) SubLoggers ¶
func (r *RotatingLogWriter) SubLoggers() SubLoggers
SubLoggers returns all currently registered subsystem loggers for this log writer.
NOTE: This is part of the LeveledSubLogger interface.
func (*RotatingLogWriter) SupportedSubsystems ¶
func (r *RotatingLogWriter) SupportedSubsystems() []string
SupportedSubsystems returns a sorted string slice of all keys in the subsystems map, corresponding to the names of the subsystems.
NOTE: This is part of the LeveledSubLogger interface.
type ShutdownLogger ¶
ShutdownLogger wraps an existing logger with a shutdown function which will be called on Critical/Criticalf to prompt shutdown.
func NewShutdownLogger ¶
func NewShutdownLogger(logger btclog.Logger, shutdown func()) *ShutdownLogger
NewShutdownLogger creates a shutdown logger for the log provided which will use the signal package to request shutdown on critical errors.
func (*ShutdownLogger) Critical ¶
func (s *ShutdownLogger) Critical(v ...interface{})
Critical formats message using the default formats for its operands and writes to log with LevelCritical. It will then call the shutdown logger's shutdown function to prompt safe shutdown.
Note: it is part of the btclog.Logger interface.
func (*ShutdownLogger) Criticalf ¶
func (s *ShutdownLogger) Criticalf(format string, params ...interface{})
Criticalf formats message according to format specifier and writes to log with LevelCritical. It will then call the shutdown logger's shutdown function to prompt safe shutdown.
Note: it is part of the btclog.Logger interface.
type SubLoggers ¶
SubLoggers is a type that holds a map of subsystem loggers keyed by their subsystem name.