package glog
import "git.sr.ht/~poldi1405/glog"
Package glog aims to be the "one for all" logging package. It has a wide variety of features. To "handle errors gracefully" most times when a Setting-Function is called, no error is returned. If the specified level does not exist, execution is just silently aborted.
An important note is that *all* log-level ranges are inclusive. This means that "below …" actually means "below or equal to …".
Index ¶
- Variables
- func AddLogFile(filepath string, lvls ...Level) (*os.File, error)
- func AddOutput(lvl Level, output io.Writer)
- func AddOutputAbove(lvl Level, output io.Writer)
- func AddOutputBelow(lvl Level, output io.Writer)
- func AddOutputBetween(lowerLevel, upperLevel Level, output io.Writer)
- func Debug(message ...interface{})
- func Debugf(format string, values ...interface{})
- func Error(message ...interface{})
- func Errorf(format string, values ...interface{})
- func Fatal(message ...interface{})
- func FatalStyle(content ...interface{}) string
- func Fatalf(format string, values ...interface{})
- func GetCaller(skipFrames int) string
- func Info(message ...interface{})
- func Infof(format string, values ...interface{})
- func Log(lvl Level, message ...interface{})
- func Logf(lvl Level, format string, values ...interface{})
- func PanicHandler()
- func PlainStyle(content ...interface{}) string
- func SetLevel(lvl Level) bool
- func SetOutput(lvl Level, output io.Writer)
- func SetOutputAbove(lvl Level, output io.Writer)
- func SetOutputBelow(lvl Level, output io.Writer)
- func SetOutputBetween(lowerLevel, upperLevel Level, output io.Writer)
- func SetShowCaller(lvl Level, show bool)
- func SetStyle(lvl Level, styler StyleFunction)
- func Trace(message ...interface{})
- func Tracef(format string, values ...interface{})
- func Warn(message ...interface{})
- func Warnf(format string, values ...interface{})
- type FormatFunction
- type Level
- func ParseLevel(level string, fallback Level) Level
- func (lvl Level) Short() string
- func (lvl Level) String() string
- type StyleFunction
Examples ¶
Variables ¶
var ( // OverrideColor allows overwriting the coloring mode. 0 = auto; // 1 = always; -1 = never // // This can also be set using the Environment-variable `GLOG_COLOR` OverrideColor int8 // LogLevel indicates the level of verbosity to use when logging. // Messages below the specified level are discarded. Usually you want to // use SetLevel() to ensure that overrides are correctly applied. // // This can also be set using the Environment-variable `GLOG_LEVEL` LogLevel = WARNING )
var ( // TimeFormat specifies the formatting of the timestamp to use. The // default is ISO-8601 which corresponds to: TimeFormat = "2006-01-02T15:04:05.000000-0700" // LogFormatter contains the function used to actually format logged // statements. Changing this allows complete control over the format of // log messages. LogFormatter FormatFunction = defaultLogFormat // EnableMetaLogging starts logging the inner workings of this library // and is usually only used when developing but can be helpful if there // are issues with your logging. If you happen to find a bug, please // don't hesitate it at: https://todo.sr.ht/~poldi1405/issues // (no account needed) EnableMetaLogging bool // ShortCaller indicates whether the printed caller should be shortened // to only include the package and it's function instead of the entire // import-path. ShortCaller = true // ShowCallerLine displays file and line as the caller instead of the // function that called. ShowCallerLine bool // PanicLogFile is the file panics are logged to. PanicLogFile = "panic.log" )
Functions ¶
func AddLogFile ¶
AddLogFile opens the specified files and adds it to the specified levels
func AddOutput ¶
AddOutput adds the specified output to the list of outputs for the level
func AddOutputAbove ¶
AddOutputAbove adds the specified output to the list of outputs for the
levels including and above the specified levels.
Code:
Example¶
{
AddOutputAbove(WARNING, os.Stderr)
// is equal to
AddOutput(WARNING, os.Stderr)
AddOutput(ERROR, os.Stderr)
AddOutput(FATAL, os.Stderr)
}
func AddOutputBelow ¶
AddOutputBelow adds the specified output to the list of outputs for the specified
levels.
Code:
Example¶
{
AddOutputBelow(WARNING, os.Stderr)
// is equal to
AddOutput(WARNING, os.Stderr)
AddOutput(INFO, os.Stderr)
AddOutput(DEBUG, os.Stderr)
AddOutput(TRACE, os.Stderr)
}
func AddOutputBetween ¶
AddOutputBetween adds the specified output to the list of outputs for all
specified levels.
Code:
Example¶
{
AddOutputBetween(DEBUG, ERROR, os.Stderr)
// is equal to
AddOutput(DEBUG, os.Stderr)
AddOutput(INFO, os.Stderr)
AddOutput(WARNING, os.Stderr)
AddOutput(ERROR, os.Stderr)
}
func Debug ¶
func Debug(message ...interface{})
Debug logs a message at the DEBUG level
func Debugf ¶
func Debugf(format string, values ...interface{})
Debugf formats the input values as specified and writes them to the according channels
func Error ¶
func Error(message ...interface{})
Error logs a message at the ERROR level
func Errorf ¶
func Errorf(format string, values ...interface{})
Errorf formats the input values as specified and writes them to the according channels
func Fatal ¶
func Fatal(message ...interface{})
Fatal logs a message at the FATAL level it is recommended to exit the program afterwards.
func FatalStyle ¶
func FatalStyle(content ...interface{}) string
FatalStyle is the default style for fatal logmessages. Just in case you want to restore it after changing it.
func Fatalf ¶
func Fatalf(format string, values ...interface{})
Fatalf formats the input values as specified and writes them to the according channel. It is recommended to exit the program afterwards.
func GetCaller ¶
GetCaller returns the calling function. skipFrames indicates how far up the ladder we go when looking for the caller (2 = direct caller, 3 = caller of the caller, …). You can use this for more information in your log messages when creating custom formatters. Note that this is *relatively* expensive.
func Info ¶
func Info(message ...interface{})
Info logs a message at the INFO level
func Infof ¶
func Infof(format string, values ...interface{})
Infof formats the input values as specified and writes them to the according channels
func Log ¶
func Log(lvl Level, message ...interface{})
Log logs a message at the specified level
func Logf ¶
Logf formats the input values as specified and writes them to the according channels
func PanicHandler ¶
func PanicHandler()
PanicHandler logs a panic if it occurs. A panic is always written to panic.log and then passed on. Under *no* circumstances should this be used as a way to ensure a programs stability. Make your own function for that.
func PlainStyle ¶
func PlainStyle(content ...interface{}) string
PlainStyle is an implementation of StyleFunction that does not format output.
func SetLevel ¶
SetLevel allows setting the loglevel while preserving the level set using the environment
func SetOutput ¶
SetOutput removes all outputs and replaces them with the specified output. To discard log messages to a level set the loglevel accordingly or use `io.Discard`
func SetOutputAbove ¶
SetOutputAbove removes all outputs and replaces them with the specified
output. This is repeated for all specified levels. For more information on
the inner workings of SetOutput* see the SetOutput() function.
Code:
Example¶
{
SetOutputAbove(WARNING, os.Stderr)
// is equal to
SetOutput(WARNING, os.Stderr)
SetOutput(ERROR, os.Stderr)
SetOutput(FATAL, os.Stderr)
}
func SetOutputBelow ¶
SetOutputBelow removes all outputs and replaces them with the specified output.
This is repeated for all specified levels. For more information on
the inner workings of SetOutput* see the SetOutput() function.
Code:
Example¶
{
SetOutputBelow(WARNING, os.Stderr)
// is equal to
SetOutput(WARNING, os.Stderr)
SetOutput(INFO, os.Stderr)
SetOutput(DEBUG, os.Stderr)
SetOutput(TRACE, os.Stderr)
}
func SetOutputBetween ¶
SetOutputBetween removes all outputs and replaces them with the specified
output. This is executed for all specified levels. For more information on
the inner workings of SetOutput* see the SetOutput() function.
Code:
Example¶
{
SetOutputBetween(DEBUG, ERROR, os.Stderr)
// is equal to
SetOutput(DEBUG, os.Stderr)
SetOutput(INFO, os.Stderr)
SetOutput(WARNING, os.Stderr)
SetOutput(ERROR, os.Stderr)
}
func SetShowCaller ¶
SetShowCaller allows defining for what levels the caller is displayed in the Log. By default the caller is shown for TRACE, DEBUG, ERROR, and FATAL.
func SetStyle ¶
func SetStyle(lvl Level, styler StyleFunction)
SetStyle allows customizing the look of the *error-level*. This can also be used for changing the names of the loglevels.
func Trace ¶
func Trace(message ...interface{})
Trace logs a message at the TRACE level
func Tracef ¶
func Tracef(format string, values ...interface{})
Tracef formats the input values as specified and writes them to the according channels
func Warn ¶
func Warn(message ...interface{})
Warn logs a message at the WARNING level
func Warnf ¶
func Warnf(format string, values ...interface{})
Warnf formats the input values as specified and writes them to the according channels
Types ¶
type FormatFunction ¶
FormatFunction allow defining custom logging formats and changing around the order. If Caller is not set all I can do at the moment is passing an empty string.
The string arguments correspond to caller and message.
type Level ¶
type Level uint8
Level is an alias to allow attaching functions to Loglevels.
func ParseLevel ¶
ParseLevel takes in a string and returns the corresponding loglevel. If it does not exist, default is returned instead.
func (Level) Short ¶
Short returns a levels representation in log
func (Level) String ¶
String implements the fmt.Stringer interface to allow use of levels in fmt calls.
type StyleFunction ¶
type StyleFunction func(...interface{}) string
StyleFunction is a kind of function that is used for styling. I know, who would have thought.
Source Files ¶
caller.go docs.go env.go init.go levels.go logfile.go metalog.go output.go print.go recover.go settings.go style.go
Directories ¶
Path | Synopsis |
---|---|
logrotation | Package logrotation provides a writer that automatically rotates logfiles if the set maximum size is reached or exceeded. |
try-it-out |
- Version
- v1.0.1 (latest)
- Published
- Dec 6, 2021
- Platform
- linux/amd64
- Imports
- 10 packages
- Last checked
- 1 week ago –
Tools for package owners.