Documentation ¶
Overview ¶
Package log contains utilities for logging in a modular interface. This package can be used to wrap a third party library.
Index ¶
- Constants
- Variables
- type Config
- type FanOutWriter
- type Logger
- func (l *Logger) AddWriter(w io.Writer)
- func (l *Logger) Close() error
- func (l *Logger) Debugf(message string, other ...interface{})
- func (l *Logger) Debugln(message string)
- func (l *Logger) Errorf(message string, other ...interface{})
- func (l *Logger) Errorln(message string)
- func (l *Logger) Fatalf(message string, other ...interface{})
- func (l *Logger) Fatalln(message string)
- func (l *Logger) Infof(message string, other ...interface{})
- func (l *Logger) Infoln(message string)
- func (l *Logger) NewModule(prefix string) Modular
- func (l *Logger) Output(calldepth int, s string) error
- func (l *Logger) RemoveWriter(w io.Writer)
- func (l *Logger) Tracef(message string, other ...interface{})
- func (l *Logger) Traceln(message string)
- func (l *Logger) Warnf(message string, other ...interface{})
- func (l *Logger) Warnln(message string)
- type Modular
Constants ¶
const ( LogOff int = 0 LogFatal int = 1 LogError int = 2 LogWarn int = 3 LogInfo int = 4 LogDebug int = 5 LogTrace int = 6 LogAll int = 7 )
Logger level constants
Variables ¶
var (
ErrClientNil = errors.New("the client pointer was nil")
)
Errors used throughout the package.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { Prefix string `json:"prefix" yaml:"prefix"` LogLevel string `json:"level" yaml:"level"` AddTimeStamp bool `json:"add_timestamp" yaml:"add_timestamp"` JSONFormat bool `json:"json_format" yaml:"json_format"` }
Config holds configuration options for a logger object.
type FanOutWriter ¶
type FanOutWriter struct {
// contains filtered or unexported fields
}
FanOutWriter is an io.Writer that can add and remove other writers, there is a primary writer that blocks, all other writers are lossy and will be cut off and closed if they return errors.
func NewFanOutWriter ¶
func NewFanOutWriter(w io.Writer) *FanOutWriter
NewFanOutWriter creates a new fanned out writer.
func (*FanOutWriter) Close ¶
func (w *FanOutWriter) Close() error
Close all lossy writers. This call does NOT close the primary writer.
func (*FanOutWriter) Remove ¶
func (w *FanOutWriter) Remove(lw io.Writer)
Remove an existing lossy writer. Writers that are removed and implement io.Closer will be closed as they are removed.
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger is an object with support for levelled logging and modular components.
func (*Logger) AddWriter ¶
AddWriter adds a new writer to the logger which receives the same log data as the primary writer. If this new writer returns an error it is removed. The logger becomes the owner of this writer and under any circumstance whereby the writer is removed it will also be closed by the logger.
func (*Logger) Close ¶
Close the logger, including the underlying io.Writer if it implements the io.Closer interface.
func (*Logger) NewModule ¶
NewModule creates a new logger object from the previous, using the same configuration, but adds an extra prefix to represent a submodule.
func (*Logger) RemoveWriter ¶
RemoveWriter removes writer from the logger.
type Modular ¶
type Modular interface { NewModule(prefix string) Modular // AddWriter adds a new writer to the logger which receives the same log // data as the primary writer. If this new writer returns an error it is // removed. The logger becomes the owner of this writer and under any // circumstance whereby the writer is removed it will also be closed by the // logger. AddWriter(w io.Writer) // RemoveWriter removes writer from the logger. RemoveWriter(w io.Writer) Fatalf(message string, other ...interface{}) Errorf(message string, other ...interface{}) Warnf(message string, other ...interface{}) Infof(message string, other ...interface{}) Debugf(message string, other ...interface{}) Tracef(message string, other ...interface{}) Fatalln(message string) Errorln(message string) Warnln(message string) Infoln(message string) Debugln(message string) Traceln(message string) Output(calldepth int, s string) error // Close the logger, including the underlying io.Writer if it implements the // io.Closer interface. Close() error }
Modular is a log printer that allows you to branch new modules.