112 lines
2.8 KiB
Go
112 lines
2.8 KiB
Go
|
// Copyright © 2016 Steve Francia <spf@spf13.com>.
|
||
|
//
|
||
|
// Use of this source code is governed by an MIT-style
|
||
|
// license that can be found in the LICENSE file.
|
||
|
|
||
|
package jwalterweatherman
|
||
|
|
||
|
import (
|
||
|
"io"
|
||
|
"io/ioutil"
|
||
|
"log"
|
||
|
"os"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
TRACE *log.Logger
|
||
|
DEBUG *log.Logger
|
||
|
INFO *log.Logger
|
||
|
WARN *log.Logger
|
||
|
ERROR *log.Logger
|
||
|
CRITICAL *log.Logger
|
||
|
FATAL *log.Logger
|
||
|
|
||
|
LOG *log.Logger
|
||
|
FEEDBACK *Feedback
|
||
|
|
||
|
defaultNotepad *Notepad
|
||
|
)
|
||
|
|
||
|
func reloadDefaultNotepad() {
|
||
|
TRACE = defaultNotepad.TRACE
|
||
|
DEBUG = defaultNotepad.DEBUG
|
||
|
INFO = defaultNotepad.INFO
|
||
|
WARN = defaultNotepad.WARN
|
||
|
ERROR = defaultNotepad.ERROR
|
||
|
CRITICAL = defaultNotepad.CRITICAL
|
||
|
FATAL = defaultNotepad.FATAL
|
||
|
|
||
|
LOG = defaultNotepad.LOG
|
||
|
FEEDBACK = defaultNotepad.FEEDBACK
|
||
|
}
|
||
|
|
||
|
func init() {
|
||
|
defaultNotepad = NewNotepad(LevelError, LevelWarn, os.Stdout, ioutil.Discard, "", log.Ldate|log.Ltime)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetLogThreshold set the log threshold for the default notepad. Trace by default.
|
||
|
func SetLogThreshold(threshold Threshold) {
|
||
|
defaultNotepad.SetLogThreshold(threshold)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetLogOutput set the log output for the default notepad. Discarded by default.
|
||
|
func SetLogOutput(handle io.Writer) {
|
||
|
defaultNotepad.SetLogOutput(handle)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetStdoutThreshold set the standard output threshold for the default notepad.
|
||
|
// Info by default.
|
||
|
func SetStdoutThreshold(threshold Threshold) {
|
||
|
defaultNotepad.SetStdoutThreshold(threshold)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetStdoutOutput set the stdout output for the default notepad. Default is stdout.
|
||
|
func SetStdoutOutput(handle io.Writer) {
|
||
|
defaultNotepad.outHandle = handle
|
||
|
defaultNotepad.init()
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetPrefix set the prefix for the default logger. Empty by default.
|
||
|
func SetPrefix(prefix string) {
|
||
|
defaultNotepad.SetPrefix(prefix)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetFlags set the flags for the default logger. "log.Ldate | log.Ltime" by default.
|
||
|
func SetFlags(flags int) {
|
||
|
defaultNotepad.SetFlags(flags)
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// SetLogListeners configures the default logger with one or more log listeners.
|
||
|
func SetLogListeners(l ...LogListener) {
|
||
|
defaultNotepad.logListeners = l
|
||
|
defaultNotepad.init()
|
||
|
reloadDefaultNotepad()
|
||
|
}
|
||
|
|
||
|
// Level returns the current global log threshold.
|
||
|
func LogThreshold() Threshold {
|
||
|
return defaultNotepad.logThreshold
|
||
|
}
|
||
|
|
||
|
// Level returns the current global output threshold.
|
||
|
func StdoutThreshold() Threshold {
|
||
|
return defaultNotepad.stdoutThreshold
|
||
|
}
|
||
|
|
||
|
// GetStdoutThreshold returns the defined Treshold for the log logger.
|
||
|
func GetLogThreshold() Threshold {
|
||
|
return defaultNotepad.GetLogThreshold()
|
||
|
}
|
||
|
|
||
|
// GetStdoutThreshold returns the Treshold for the stdout logger.
|
||
|
func GetStdoutThreshold() Threshold {
|
||
|
return defaultNotepad.GetStdoutThreshold()
|
||
|
}
|