mirror of
https://github.com/42wim/matterbridge
synced 2024-11-09 07:10:25 +00:00
114 lines
2.9 KiB
Go
114 lines
2.9 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()
|
|
}
|
|
|
|
// 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()
|
|
}
|
|
|
|
// 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()
|
|
}
|
|
|
|
// LogCountForLevel returns the number of log invocations for a given threshold.
|
|
func LogCountForLevel(l Threshold) uint64 {
|
|
return defaultNotepad.LogCountForLevel(l)
|
|
}
|
|
|
|
// LogCountForLevelsGreaterThanorEqualTo returns the number of log invocations
|
|
// greater than or equal to a given threshold.
|
|
func LogCountForLevelsGreaterThanorEqualTo(threshold Threshold) uint64 {
|
|
return defaultNotepad.LogCountForLevelsGreaterThanorEqualTo(threshold)
|
|
}
|
|
|
|
// ResetLogCounters resets the invocation counters for all levels.
|
|
func ResetLogCounters() {
|
|
defaultNotepad.ResetLogCounters()
|
|
}
|