Make the log output pretty and more useful

 * requires https://review.openstack.org/#/c/8067/

Change-Id: Ib26c1bd7e9ef933a7dbe2ee0c476e8d439e17574
diff --git a/stack.sh b/stack.sh
index 87d38d2..9f3def5 100755
--- a/stack.sh
+++ b/stack.sh
@@ -262,6 +262,9 @@
 SYSLOG_HOST=${SYSLOG_HOST:-$HOST_IP}
 SYSLOG_PORT=${SYSLOG_PORT:-516}
 
+# Use color for logging output
+LOG_COLOR=`trueorfalse True $LOG_COLOR`
+
 # Service startup timeout
 SERVICE_TIMEOUT=${SERVICE_TIMEOUT:-60}
 
@@ -1709,6 +1712,16 @@
 if [ "$API_RATE_LIMIT" != "True" ]; then
     add_nova_opt "api_rate_limit=False"
 fi
+if [ "$LOG_COLOR" == "True" ] && [ "$SYSLOG" == "False" ]; then
+    # Add color to logging output
+    add_nova_opt "logging_context_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_name)s%(color)s] %(instance)s%(color)s%(message)s"
+    add_nova_opt "logging_default_format_string=%(asctime)s %(color)s%(levelname)s %(name)s [-%(color)s] %(instance)s%(color)s%(message)s"
+    add_nova_opt "logging_debug_format_suffix=from (pid=%(process)d) %(funcName)s %(pathname)s:%(lineno)d"
+    add_nova_opt "logging_exception_prefix=%(color)s%(asctime)s TRACE %(name)s %(instance)s"
+else
+    # Show user_name and project_name instead of user_id and project_id
+    add_nova_opt "logging_context_format_string=%(asctime)s %(levelname)s %(name)s [%(request_id)s %(user_name)s %(project_name)s] %(instance)s%(message)s"
+fi
 
 
 # Provide some transition from EXTRA_FLAGS to EXTRA_OPTS