levelstring

package module
v1.0.0 Latest Latest
Warning

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

Go to latest
Published: Feb 24, 2016 License: MIT Imports: 3 Imported by: 0

README

This package contains a convenience function that takes a comma-separated glob-style string and uses spacelog.SetLevel to set the log level on all the matching loggers.

This is designed so that you can easily enable certain debug levels using an environment variable or your other method of choice, similar to the NPM module debug.

// From some variable
config := "incoming*,core*"
levelstring.Configure(config, spacelog.Debug)
// Or straight from the environment
levelstring.Configure(os.Getenv("DEBUG"), spacelog.Debug)

See http://godoc.org/github.com/dimfeld/spacelog-levelstring for more examples.

Limitations

Calls to Configure only affect logger names that exist at the time of the call. New loggers created afterward will use the logger collection's default level.

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Configure

func Configure(setting string, level spacelog.LogLevel) error

Configure sets all loggers matching a comma-separated glob-style string to the requested level.

Example
spacelog.MustSetup("configure-example", spacelog.SetupConfig{
	Output: "stdout",
	Level:  "info",
	Format: "{{.Level}} {{.LoggerName}} - {{.Message}}",
})

inLogger := spacelog.GetLoggerNamed("input")
inputVerboseLogger := spacelog.GetLoggerNamed("input:verbose")
coreLogger := spacelog.GetLoggerNamed("core")
outLogger := spacelog.GetLoggerNamed("output")
outputVerboseLogger := spacelog.GetLoggerNamed("output:verbose")

print := func() {
	// Only the enabled facilities will actually print
	inLogger.Debug("input logger debug enabled")
	inputVerboseLogger.Debug("input:verbose logger debug enabled")
	coreLogger.Debug("core logger debug enabled")
	outLogger.Debug("output logger debug enabled")
	outputVerboseLogger.Debug("output:verbose logger debug enabled")
	fmt.Println()
}

coreLogger.Info("Enabling input* DEBUG")
Configure("input*", spacelog.Debug)
print()

coreLogger.Info("Enabling *verbose DEBUG")
Configure("*verbose", spacelog.Debug)
print()

coreLogger.Info("Enabling all DEBUG")
Configure("*", spacelog.Debug)
print()

coreLogger.Info("Setting input:verb*, output:verbose back to WARN")
Configure("input:verb*, output:verbose", spacelog.Warning)
print()
Output:

INFO core - Enabling input* DEBUG
DEBUG input - input logger debug enabled
DEBUG input:verbose - input:verbose logger debug enabled

INFO core - Enabling *verbose DEBUG
DEBUG input - input logger debug enabled
DEBUG input:verbose - input:verbose logger debug enabled
DEBUG output:verbose - output:verbose logger debug enabled

INFO core - Enabling all DEBUG
DEBUG input - input logger debug enabled
DEBUG input:verbose - input:verbose logger debug enabled
DEBUG core - core logger debug enabled
DEBUG output - output logger debug enabled
DEBUG output:verbose - output:verbose logger debug enabled

INFO core - Setting input:verb*, output:verbose back to WARN
DEBUG input - input logger debug enabled
DEBUG core - core logger debug enabled
DEBUG output - output logger debug enabled

Types

This section is empty.

Jump to

Keyboard shortcuts

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