diff --git a/homeassistant/components/system_log/__init__.py b/homeassistant/components/system_log/__init__.py index b8d6b1664ac..bb255ba8bf3 100644 --- a/homeassistant/components/system_log/__init__.py +++ b/homeassistant/components/system_log/__init__.py @@ -211,6 +211,8 @@ async def async_setup(hass, config): handler = LogErrorHandler(hass, conf[CONF_MAX_ENTRIES], conf[CONF_FIRE_EVENT]) + hass.data[DOMAIN] = handler + listener = logging.handlers.QueueListener( simple_queue, handler, respect_handler_level=True ) @@ -222,6 +224,7 @@ async def async_setup(hass, config): """Cleanup handler.""" logging.root.removeHandler(queue_handler) listener.stop() + del hass.data[DOMAIN] hass.bus.async_listen_once(EVENT_HOMEASSISTANT_CLOSE, _async_stop_queue_handler) diff --git a/tests/components/system_log/test_init.py b/tests/components/system_log/test_init.py index d3f7447277c..49cd2d8ea8b 100644 --- a/tests/components/system_log/test_init.py +++ b/tests/components/system_log/test_init.py @@ -31,6 +31,8 @@ async def _async_block_until_queue_empty(hass, sq): await hass.async_block_till_done() while not sq.empty(): await asyncio.sleep(0.01) + hass.data[system_log.DOMAIN].acquire() + hass.data[system_log.DOMAIN].release() await hass.async_block_till_done()