diff --git a/awx/main/utils/handlers.py b/awx/main/utils/handlers.py index 82d3a285bb..289f64d064 100644 --- a/awx/main/utils/handlers.py +++ b/awx/main/utils/handlers.py @@ -288,13 +288,17 @@ class AWXProxyHandler(logging.Handler): ''' thread_local = threading.local() + _auditor = None def __init__(self, **kwargs): # TODO: process 'level' kwarg super(AWXProxyHandler, self).__init__(**kwargs) self._handler = None self._old_kwargs = {} - if settings.LOG_AGGREGATOR_AUDIT: + + @property + def auditor(self): + if not self._auditor: self._auditor = logging.handlers.RotatingFileHandler( filename='/var/log/tower/external.log', maxBytes=1024 * 1024 * 50, # 50 MB @@ -307,6 +311,7 @@ class AWXProxyHandler(logging.Handler): return json.dumps(message) self._auditor.setFormatter(WritableLogstashFormatter()) + return self._auditor def get_handler_class(self, protocol): return HANDLER_MAPPING.get(protocol, AWXNullHandler) @@ -341,8 +346,8 @@ class AWXProxyHandler(logging.Handler): if AWXProxyHandler.thread_local.enabled: actual_handler = self.get_handler() if settings.LOG_AGGREGATOR_AUDIT: - self._auditor.setLevel(settings.LOG_AGGREGATOR_LEVEL) - self._auditor.emit(record) + self.auditor.setLevel(settings.LOG_AGGREGATOR_LEVEL) + self.auditor.emit(record) return actual_handler.emit(record) def perform_test(self, custom_settings):