--- /dev/null
+package logger
+
+import (
+ "os"
+)
+
+// The log function map can be added to, so that you can specify your own logging mechanism
+// it has defaults for off, stdout, stderr
+var LogFunctionMap = map[string]func(*CompositeMultiHandler, *LogOptions){
+ // Do nothing - set the logger off
+ "off": func(c *CompositeMultiHandler, logOptions *LogOptions) {
+ // Only drop the results if there is a parent handler defined
+ if logOptions.HandlerWrap != nil {
+ for _, l := range logOptions.Levels {
+ c.SetHandler(logOptions.HandlerWrap.SetChild(NilHandler()), logOptions.ReplaceExistingHandler, l)
+ }
+ } else {
+ // Clear existing handler
+ c.SetHandlers(NilHandler(), logOptions)
+ }
+ },
+ // Do nothing - set the logger off
+ "": func(*CompositeMultiHandler, *LogOptions) {},
+ // Set the levels to stdout, replace existing
+ "stdout": func(c *CompositeMultiHandler, logOptions *LogOptions) {
+ if logOptions.Ctx != nil {
+ logOptions.SetExtendedOptions(
+ "noColor", !logOptions.Ctx.BoolDefault("log.colorize", true),
+ "smallDate", logOptions.Ctx.BoolDefault("log.smallDate", true))
+ }
+ c.SetTerminal(os.Stdout, logOptions)
+ },
+ // Set the levels to stderr output to terminal
+ "stderr": func(c *CompositeMultiHandler, logOptions *LogOptions) {
+ c.SetTerminal(os.Stderr, logOptions)
+ },
+}