Various Fixes to multistructlog

- Force color output on structured-color formatter
- Add log levels and timestamps to output
- Fix reinitialization issue
- Cleanup/clarify README, add changelog

Change-Id: I11433f362e7c1ab8c1ee9fbca2081e136b57f22c
diff --git a/multistructlog.py b/multistructlog.py
index 49338d0..632b820 100644
--- a/multistructlog.py
+++ b/multistructlog.py
@@ -89,16 +89,19 @@
     global CURRENT_LOGGER
     global CURRENT_LOGGER_PARAMS
 
+    # if config provided, copy to prevent changes to dict from being pushed
+    # back to caller, otherwise use default config
+    if logging_config:
+        logging_config = copy.deepcopy(logging_config)
+    else:
+        logging_config = {'version': 1, "disable_existing_loggers": False}
+
     if CURRENT_LOGGER and CURRENT_LOGGER_PARAMS == (logging_config, level):
         return CURRENT_LOGGER
 
     # store unmodified config, which is changed later
     CURRENT_LOGGER_PARAMS = (copy.deepcopy(logging_config), level)
 
-    # set bare minimum config if not set
-    if not logging_config:
-        logging_config = {'version': 1}
-
     # check if formatters exists in logging_config, set defaults if not set
     if "formatters" not in logging_config:
 
@@ -109,7 +112,8 @@
             },
             'structured-color': {
                 '()': structlog.stdlib.ProcessorFormatter,
-                'processor': structlog.dev.ConsoleRenderer(colors=True),
+                'processor': structlog.dev.ConsoleRenderer(colors=True,
+                                                           force_colors=True),
             },
             'structured': {
                 '()': structlog.stdlib.ProcessorFormatter,
@@ -157,8 +161,12 @@
     # configure structlog
     structlog.configure(
         processors=[
+            structlog.stdlib.filter_by_level,
+            structlog.stdlib.add_log_level,
+            structlog.stdlib.PositionalArgumentsFormatter(),
             structlog.processors.StackInfoRenderer(),
             structlog.processors.format_exc_info,
+            structlog.processors.TimeStamper(fmt="iso"),
             structlog.stdlib.ProcessorFormatter.wrap_for_formatter,
         ],
         context_class=dict,