Manage null default state for logging integration and DB definition

This commit is contained in:
AlanCoding 2016-12-02 16:45:27 -05:00
parent ebff4f4f24
commit 064a40ba92
6 changed files with 31 additions and 4 deletions

View File

@ -15,5 +15,8 @@ class ConfConfig(AppConfig):
self.module.autodiscover()
from .settings import SettingsWrapper
SettingsWrapper.initialize()
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
if settings.LOG_AGGREGATOR_ENABLED:
LOGGING = settings.LOGGING
LOGGING['handlers']['http_receiver']['class'] = 'awx.main.utils.handlers.HTTPSHandler'
configure_logging(settings.LOGGING_CONFIG, LOGGING)
# checks.register(SettingsWrapper._check_settings)

View File

@ -296,3 +296,12 @@ register(
category=_('Logging'),
category_slug='logging',
)
register(
'LOG_AGGREGATOR_ENABLED',
field_class=fields.BooleanField,
default=False,
label=_('Flag denoting whether to use the external logger system'),
help_text=_('If not set, only normal settings data will be used to configure loggers.'),
category=_('Logging'),
category_slug='logging',
)

View File

@ -23,7 +23,7 @@ from socketio import socketio_manage
from socketio.server import SocketIOServer
from socketio.namespace import BaseNamespace
logger = logging.getLogger('awx.main.consumers')
logger = logging.getLogger('awx.main.commands.run_socketio_service')
class SocketSession(object):

View File

@ -92,7 +92,12 @@ def clear_cache_keys(cache_keys):
cache.delete_many(set_of_keys)
for setting_key in set_of_keys:
if setting_key.startswith('LOG_AGGREGATOR_'):
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
LOGGING = settings.LOGGING
if settings.LOG_AGGREGATOR_ENABLED:
LOGGING['handlers']['http_receiver']['class'] = 'awx.main.utils.handlers.HTTPSHandler'
else:
LOGGING['handlers']['http_receiver']['class'] = 'awx.main.utils.handlers.HTTPSNullHandler'
configure_logging(settings.LOGGING_CONFIG, LOGGING)
break

View File

@ -14,6 +14,7 @@ from requests_futures.sessions import FuturesSession
# custom
from django.conf import settings as django_settings
from django.utils.log import NullHandler
# AWX external logging handler, generally designed to be used
# with the accompanying LogstashHandler, derives from python-logstash library
@ -36,6 +37,13 @@ def unused_callback(sess, resp):
pass
class HTTPSNullHandler(NullHandler):
"Placeholder null handler to allow loading without database access"
def __init__(self, host, **kwargs):
return super(HTTPSNullHandler, self).__init__()
class HTTPSHandler(logging.Handler):
def __init__(self, fqdn=False, **kwargs):
super(HTTPSHandler, self).__init__()

View File

@ -825,6 +825,8 @@ TOWER_URL_BASE = "https://towerhost"
TOWER_SETTINGS_MANIFEST = {}
LOG_AGGREGATOR_ENABLED = False
# Logging configuration.
LOGGING = {
'version': 1,
@ -869,7 +871,7 @@ LOGGING = {
'formatter': 'simple',
},
'http_receiver': {
'class': 'awx.main.utils.handlers.HTTPSHandler',
'class': 'awx.main.utils.handlers.HTTPSNullHandler',
'level': 'INFO',
'formatter': 'json',
'host': '',