Explicitly enable eventlet wsgi logging

the INFO level logging of eventlet.wsgi for api services running under
it (and not as proper WSGI apps under Apache2) is used by the StackLight
to monitor API response times and overall status, thus we need it
enabled as much by default as possible.

This patch:

- deduplicates handlers/propagate settings, propagate by default,
  rely on handlers configured once in the "root" logger
- explicitly add the eventlerwsgi logger to the list of enabled loggers
- change the default level for 'eventletwsgi' logger to INFO
- change the qualname for the eventlerwsgi logger to just
  'eventlet.wsgi' - some openstack services (e.g. Designate) set this as the
  "name" for the logger passed to the eventlet, by the virtue of
  hierarchical logging this will be applied to 'eventlet.wsgi.server' as
  well, fully backward compatible

These changes will not change how services log under apache2, as this
eventlerwsgi logger will simply be noop (as eventlet.wsgi won't
be emitting any logs).

Related-Issue: PROD-36253
Change-Id: I4b26ca67ac6d33670e92b6aef88899e7af725dfe
diff --git a/oslo_templates/files/logging/_logging.conf b/oslo_templates/files/logging/_logging.conf
index ecbc0e8..3bce94c 100644
--- a/oslo_templates/files/logging/_logging.conf
+++ b/oslo_templates/files/logging/_logging.conf
@@ -6,7 +6,7 @@
   {%- endif %}
 {%- endfor %}
 
-{%- set loggers = ["root", app_name] -%}
+{%- set loggers = ["root", "eventletwsgi", app_name] -%}
 {%- for _logger_name, _logger_attrs in _data.get('loggers', {}).iteritems() %}
   {%- if _logger_attrs.get('enabled', False) and _logger_name not in loggers %}
     {%- do loggers.append(_logger_name) -%}
@@ -28,23 +28,22 @@
 
 [logger_{{ app_name }}]
 level = {{ _data.get('loggers', {}).get(app_name, {}).get('level', 'INFO') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = {{ app_name }}
-propagate = 0
 
 [logger_amqp]
 level = {{ _data.get('loggers', {}).get('amqp', {}).get('level', 'WARNING') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = amqp
 
 [logger_amqplib]
 level = {{ _data.get('loggers', {}).get('amqplib', {}).get('level', 'WARNING') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = amqplib
 
 [logger_sqlalchemy]
 level = {{ _data.get('loggers', {}).get('sqlalchemy', {}).get('level', 'WARNING') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = sqlalchemy
 # "level = INFO" logs SQL queries.
 # "level = DEBUG" logs SQL queries and results.
@@ -52,7 +51,7 @@
 
 [logger_boto]
 level = {{ _data.get('loggers', {}).get('boto', {}).get('level', 'WARNING') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = boto
 
 # NOTE(mikal): suds is used by the vmware driver, removing this will
@@ -60,13 +59,13 @@
 # https://review.openstack.org/#/c/219225/ for details.
 [logger_suds]
 level = {{ _data.get('loggers', {}).get('suds', {}).get('level', 'INFO') }}
-handlers = {{ log_handlers | join(", ") }}
+handlers =
 qualname = suds
 
 [logger_eventletwsgi]
-level = {{ _data.get('loggers', {}).get('eventletwsgi', {}).get('level', 'WARNING') }}
-handlers = {{ log_handlers | join(", ") }}
-qualname = eventlet.wsgi.server
+level = {{ _data.get('loggers', {}).get('eventletwsgi', {}).get('level', 'INFO') }}
+handlers =
+qualname = eventlet.wsgi
 
 {% if _data.log_handlers.get('fluentd').get('enabled', False) -%}
 [handler_fluentd]