Add API Framework Revel Source Files
[iec.git] / src / foundation / api / revel / logger / log_function_map.go
1 package logger
2
3 import (
4         "os"
5 )
6
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)
16                         }
17                 } else {
18                         // Clear existing handler
19                         c.SetHandlers(NilHandler(), logOptions)
20                 }
21         },
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))
30                 }
31                 c.SetTerminal(os.Stdout, logOptions)
32         },
33         // Set the levels to stderr output to terminal
34         "stderr": func(c *CompositeMultiHandler, logOptions *LogOptions) {
35                 c.SetTerminal(os.Stderr, logOptions)
36         },
37 }