Add API Framework Revel Source Files
[iec.git] / src / foundation / api / revel / logger / log_function_map.go
diff --git a/src/foundation/api/revel/logger/log_function_map.go b/src/foundation/api/revel/logger/log_function_map.go
new file mode 100644 (file)
index 0000000..ebbc76d
--- /dev/null
@@ -0,0 +1,37 @@
+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)
+       },
+}