7 // The log function map can be added to, so that you can specify your own logging mechanism
8 // it has defaults for off, stdout, stderr
9 var LogFunctionMap = map[string]func(*CompositeMultiHandler, *LogOptions){
10 // Do nothing - set the logger off
11 "off": func(c *CompositeMultiHandler, logOptions *LogOptions) {
12 // Only drop the results if there is a parent handler defined
13 if logOptions.HandlerWrap != nil {
14 for _, l := range logOptions.Levels {
15 c.SetHandler(logOptions.HandlerWrap.SetChild(NilHandler()), logOptions.ReplaceExistingHandler, l)
18 // Clear existing handler
19 c.SetHandlers(NilHandler(), logOptions)
22 // Do nothing - set the logger off
23 "": func(*CompositeMultiHandler, *LogOptions) {},
24 // Set the levels to stdout, replace existing
25 "stdout": func(c *CompositeMultiHandler, logOptions *LogOptions) {
26 if logOptions.Ctx != nil {
27 logOptions.SetExtendedOptions(
28 "noColor", !logOptions.Ctx.BoolDefault("log.colorize", true),
29 "smallDate", logOptions.Ctx.BoolDefault("log.smallDate", true))
31 c.SetTerminal(os.Stdout, logOptions)
33 // Set the levels to stderr output to terminal
34 "stderr": func(c *CompositeMultiHandler, logOptions *LogOptions) {
35 c.SetTerminal(os.Stderr, logOptions)