lumber

package module
v0.0.0-...-dd34944 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 24, 2016 License: MIT Imports: 9 Imported by: 224

README

lumber

A simple logger for Go.

Provides console and file loggers that support 6 log levels. The file logger supports log backup and rotation.

Usage:

Log to the default (console) logger

lumber.Error("An error message")

Create a new console logger that only logs messages of level WARN or higher

log := lumber.NewConsoleLogger(lumber.WARN)

Change the log level for a logger

log.Level(lumber.INFO)

Create a new file logger that rotates at 5000 lines (up to 9 backups) with a 100 message buffer

log := lumber.NewFileLogger("filename.log", lumber.INFO, lumber.ROTATE, 5000, 9, 100)
// or
log := lumber.NewRotateLogger("filename.log", 5000, 9)

Send messages to the log

// the log methods use fmt.Printf() syntax
log.Trace("the %s log level", "lowest")
log.Debug("")
log.Info("the default log level")
log.Warn("")
log.Error("")
log.Fatal("the %s log level", "highest")

Add a prefix to label different logs

log.Prefix("MYAPP")

Use a MultiLogger

mlog := NewMultiLogger()
mlog.AddLoggers(log1, log2)
mlog.Warn("This message goes to multiple loggers")
mlog.Close() // closes all loggers
Modes:

APPEND: Append if the file exists, otherwise create a new file

TRUNC: Open and truncate the file, regardless of whether it already exists

BACKUP: Rotate the log every time a new logger is created

ROTATE: Append if the file exists, when the log reaches maxLines rotate files

Documentation

Overview

Package lumber implements a simple logger that supports log levels and rotation.

Index

Constants

View Source
const (
	// mode constants
	APPEND = iota
	TRUNC
	BACKUP
	ROTATE
)
View Source
const (
	TRACE = iota
	DEBUG
	INFO
	WARN
	ERROR
	FATAL

	TIMEFORMAT = "2006-01-02 15:04:05"
)
View Source
const (
	BUFSIZE = 100
)

Variables

This section is empty.

Functions

func Close

func Close()

Close the default logger

func Debug

func Debug(format string, v ...interface{})

func Error

func Error(format string, v ...interface{})

func Fatal

func Fatal(format string, v ...interface{})

Logging functions

func GetLevel

func GetLevel() int

func Info

func Info(format string, v ...interface{})

func IsDebug

func IsDebug() bool

func IsError

func IsError() bool

func IsFatal

func IsFatal() bool

func IsInfo

func IsInfo() bool

func IsTrace

func IsTrace() bool

func IsWarn

func IsWarn() bool

func Level

func Level(o int)

Sets the output level for the default logger

func LvlInt

func LvlInt(s string) int

Returns the int value of the level

func LvlStr

func LvlStr(l int) string

Returns the string representation of the level

func Prefix

func Prefix(p string)

Prefix sets a prefix for the default logger

func Print

func Print(lvl int, v ...interface{})

func Printf

func Printf(lvl int, format string, v ...interface{})

func SetLogger

func SetLogger(l Logger)

SetLogger sets a new default logger

func TimeFormat

func TimeFormat(f string)

Sets the time format for the default logger

func Trace

func Trace(format string, v ...interface{})

func Warn

func Warn(format string, v ...interface{})

Types

type ConsoleLogger

type ConsoleLogger struct {
	// contains filtered or unexported fields
}

func NewBasicLogger

func NewBasicLogger(f io.WriteCloser, level int) *ConsoleLogger

func NewConsoleLogger

func NewConsoleLogger(o int) *ConsoleLogger

Create a new console logger with output level o, and an empty prefix

func (*ConsoleLogger) Close

func (l *ConsoleLogger) Close()

Close the logger

func (*ConsoleLogger) Debug

func (l *ConsoleLogger) Debug(format string, v ...interface{})

func (*ConsoleLogger) Error

func (l *ConsoleLogger) Error(format string, v ...interface{})

func (*ConsoleLogger) Fatal

func (l *ConsoleLogger) Fatal(format string, v ...interface{})

Logging functions

func (*ConsoleLogger) GetLevel

func (l *ConsoleLogger) GetLevel() int

func (*ConsoleLogger) Info

func (l *ConsoleLogger) Info(format string, v ...interface{})

func (*ConsoleLogger) IsDebug

func (l *ConsoleLogger) IsDebug() bool

func (*ConsoleLogger) IsError

func (l *ConsoleLogger) IsError() bool

func (*ConsoleLogger) IsFatal

func (l *ConsoleLogger) IsFatal() bool

func (*ConsoleLogger) IsInfo

func (l *ConsoleLogger) IsInfo() bool

func (*ConsoleLogger) IsTrace

func (l *ConsoleLogger) IsTrace() bool

func (*ConsoleLogger) IsWarn

func (l *ConsoleLogger) IsWarn() bool

func (*ConsoleLogger) Level

func (l *ConsoleLogger) Level(o int)

Sets the output level for this logger

func (*ConsoleLogger) Prefix

func (l *ConsoleLogger) Prefix(p string)

Sets the prefix for this logger

func (*ConsoleLogger) Print

func (l *ConsoleLogger) Print(lvl int, v ...interface{})

func (*ConsoleLogger) Printf

func (l *ConsoleLogger) Printf(lvl int, format string, v ...interface{})

func (*ConsoleLogger) SetLevels

func (l *ConsoleLogger) SetLevels(lvls []string)

Sets the available levels for this logger

func (*ConsoleLogger) TimeFormat

func (l *ConsoleLogger) TimeFormat(f string)

Sets the time format for this logger

func (*ConsoleLogger) Trace

func (l *ConsoleLogger) Trace(format string, v ...interface{})

func (*ConsoleLogger) Warn

func (l *ConsoleLogger) Warn(format string, v ...interface{})

type FileLogger

type FileLogger struct {
	// contains filtered or unexported fields
}

func NewAppendLogger

func NewAppendLogger(f string) (*FileLogger, error)

Convenience function to create a new append-only logger

func NewBackupLogger

func NewBackupLogger(f string, maxBackup int) (*FileLogger, error)

Convenience function to create a new backup logger

func NewBasicFileLogger

func NewBasicFileLogger(f *os.File, level int) (l *FileLogger)

func NewFileLogger

func NewFileLogger(f string, o, mode, maxLines, maxRotate, bufsize int) (*FileLogger, error)

Creates a new FileLogger with filename f, output level o, and an empty prefix. Modes are described in the documentation; maxLines and maxRotate are only significant for some modes.

func NewRotateLogger

func NewRotateLogger(f string, maxLines, maxRotate int) (*FileLogger, error)

Convenience function to create a new rotating logger

func NewTruncateLogger

func NewTruncateLogger(f string) (*FileLogger, error)

Convenience function to create a new truncating logger

func (*FileLogger) Close

func (l *FileLogger) Close()

Flush the messages in the queue and shut down the logger.

func (*FileLogger) Debug

func (l *FileLogger) Debug(format string, v ...interface{})

func (*FileLogger) Error

func (l *FileLogger) Error(format string, v ...interface{})

func (*FileLogger) Fatal

func (l *FileLogger) Fatal(format string, v ...interface{})

Logging functions

func (*FileLogger) GetLevel

func (l *FileLogger) GetLevel() int

func (*FileLogger) Info

func (l *FileLogger) Info(format string, v ...interface{})

func (*FileLogger) IsDebug

func (l *FileLogger) IsDebug() bool

func (*FileLogger) IsError

func (l *FileLogger) IsError() bool

func (*FileLogger) IsFatal

func (l *FileLogger) IsFatal() bool

func (*FileLogger) IsInfo

func (l *FileLogger) IsInfo() bool

func (*FileLogger) IsTrace

func (l *FileLogger) IsTrace() bool

func (*FileLogger) IsWarn

func (l *FileLogger) IsWarn() bool

func (*FileLogger) Level

func (l *FileLogger) Level(o int)

Sets the output level for this logger

func (*FileLogger) Prefix

func (l *FileLogger) Prefix(p string)

Sets the prefix for this logger

func (*FileLogger) Print

func (l *FileLogger) Print(lvl int, v ...interface{})

func (*FileLogger) Printf

func (l *FileLogger) Printf(lvl int, format string, v ...interface{})

func (*FileLogger) SetLevels

func (l *FileLogger) SetLevels(lvls []string)

Sets the available levels for this logger TODO: append a *LOG* level

func (*FileLogger) TimeFormat

func (l *FileLogger) TimeFormat(f string)

Sets the time format for this logger

func (*FileLogger) Trace

func (l *FileLogger) Trace(format string, v ...interface{})

func (*FileLogger) Warn

func (l *FileLogger) Warn(format string, v ...interface{})

type Logger

type Logger interface {
	Fatal(string, ...interface{})
	Error(string, ...interface{})
	Warn(string, ...interface{})
	Info(string, ...interface{})
	Debug(string, ...interface{})
	Trace(string, ...interface{})

	IsFatal() bool
	IsError() bool
	IsWarn() bool
	IsInfo() bool
	IsDebug() bool
	IsTrace() bool
	GetLevel() int

	Print(int, ...interface{})
	Printf(int, string, ...interface{})
	Level(int)
	Prefix(string)
	TimeFormat(string)
	Close()
	// contains filtered or unexported methods
}

type Message

type Message struct {
	// contains filtered or unexported fields
}

type MultiLogger

type MultiLogger struct {
	// contains filtered or unexported fields
}

func NewMultiLogger

func NewMultiLogger() (l *MultiLogger)

func (*MultiLogger) AddLoggers

func (p *MultiLogger) AddLoggers(newLogs ...Logger)

func (*MultiLogger) ClearLoggers

func (p *MultiLogger) ClearLoggers()

func (*MultiLogger) Close

func (p *MultiLogger) Close()

func (*MultiLogger) Debug

func (p *MultiLogger) Debug(s string, v ...interface{})

func (*MultiLogger) Error

func (p *MultiLogger) Error(s string, v ...interface{})

func (*MultiLogger) Fatal

func (p *MultiLogger) Fatal(s string, v ...interface{})

All of these implement the Logger interface and distribute calls to it over all of the member Logger objects.

func (*MultiLogger) GetLevel

func (p *MultiLogger) GetLevel() int

func (*MultiLogger) Info

func (p *MultiLogger) Info(s string, v ...interface{})

func (*MultiLogger) IsDebug

func (p *MultiLogger) IsDebug() bool

func (*MultiLogger) IsError

func (p *MultiLogger) IsError() bool

func (*MultiLogger) IsFatal

func (p *MultiLogger) IsFatal() bool

func (*MultiLogger) IsInfo

func (p *MultiLogger) IsInfo() bool

func (*MultiLogger) IsTrace

func (p *MultiLogger) IsTrace() bool

func (*MultiLogger) IsWarn

func (p *MultiLogger) IsWarn() bool

func (*MultiLogger) Level

func (p *MultiLogger) Level(i int)

func (*MultiLogger) Prefix

func (p *MultiLogger) Prefix(s string)

func (*MultiLogger) Print

func (p *MultiLogger) Print(lvl int, v ...interface{})

func (*MultiLogger) Printf

func (p *MultiLogger) Printf(lvl int, format string, v ...interface{})

func (*MultiLogger) TimeFormat

func (p *MultiLogger) TimeFormat(s string)

func (*MultiLogger) Trace

func (p *MultiLogger) Trace(s string, v ...interface{})

func (*MultiLogger) Warn

func (p *MultiLogger) Warn(s string, v ...interface{})

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL