// 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() }