mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Fix logger config validation (#3459)
This commit is contained in:
parent
fa2ce366de
commit
9ac39df33f
@ -27,14 +27,12 @@ LOGSEVERITY = {
|
|||||||
LOGGER_DEFAULT = 'default'
|
LOGGER_DEFAULT = 'default'
|
||||||
LOGGER_LOGS = 'logs'
|
LOGGER_LOGS = 'logs'
|
||||||
|
|
||||||
_LOGS_SCHEMA = vol.Schema({
|
_VALID_LOG_LEVEL = vol.All(vol.Upper, vol.In(LOGSEVERITY))
|
||||||
cv.string: vol.In(vol.Lower(list(LOGSEVERITY))),
|
|
||||||
})
|
|
||||||
|
|
||||||
CONFIG_SCHEMA = vol.Schema({
|
CONFIG_SCHEMA = vol.Schema({
|
||||||
DOMAIN: vol.Schema({
|
DOMAIN: vol.Schema({
|
||||||
vol.Required(LOGGER_DEFAULT): vol.In(vol.Lower(list(LOGSEVERITY))),
|
vol.Optional(LOGGER_DEFAULT): _VALID_LOG_LEVEL,
|
||||||
vol.Required(LOGGER_LOGS): _LOGS_SCHEMA,
|
vol.Optional(LOGGER_LOGS): vol.Schema({cv.string: _VALID_LOG_LEVEL}),
|
||||||
}),
|
}),
|
||||||
}, extra=vol.ALLOW_EXTRA)
|
}, extra=vol.ALLOW_EXTRA)
|
||||||
|
|
||||||
@ -65,19 +63,19 @@ class HomeAssistantLogFilter(logging.Filter):
|
|||||||
|
|
||||||
def setup(hass, config=None):
|
def setup(hass, config=None):
|
||||||
"""Setup the logger component."""
|
"""Setup the logger component."""
|
||||||
logfilter = dict()
|
logfilter = {}
|
||||||
|
|
||||||
# Set default log severity
|
# Set default log severity
|
||||||
logfilter[LOGGER_DEFAULT] = LOGSEVERITY['DEBUG']
|
logfilter[LOGGER_DEFAULT] = LOGSEVERITY['DEBUG']
|
||||||
if LOGGER_DEFAULT in config.get(DOMAIN):
|
if LOGGER_DEFAULT in config.get(DOMAIN):
|
||||||
logfilter[LOGGER_DEFAULT] = LOGSEVERITY[
|
logfilter[LOGGER_DEFAULT] = LOGSEVERITY[
|
||||||
config.get(DOMAIN)[LOGGER_DEFAULT].upper()
|
config.get(DOMAIN)[LOGGER_DEFAULT]
|
||||||
]
|
]
|
||||||
|
|
||||||
# Compute log severity for components
|
# Compute log severity for components
|
||||||
if LOGGER_LOGS in config.get(DOMAIN):
|
if LOGGER_LOGS in config.get(DOMAIN):
|
||||||
for key, value in config.get(DOMAIN)[LOGGER_LOGS].items():
|
for key, value in config.get(DOMAIN)[LOGGER_LOGS].items():
|
||||||
config.get(DOMAIN)[LOGGER_LOGS][key] = LOGSEVERITY[value.upper()]
|
config.get(DOMAIN)[LOGGER_LOGS][key] = LOGSEVERITY[value]
|
||||||
|
|
||||||
logs = OrderedDict(
|
logs = OrderedDict(
|
||||||
sorted(
|
sorted(
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
import logging
|
import logging
|
||||||
import unittest
|
import unittest
|
||||||
|
from unittest.mock import MagicMock
|
||||||
|
|
||||||
|
from homeassistant.bootstrap import setup_component
|
||||||
from homeassistant.components import logger
|
from homeassistant.components import logger
|
||||||
|
|
||||||
RECORD = namedtuple('record', ('name', 'levelno'))
|
RECORD = namedtuple('record', ('name', 'levelno'))
|
||||||
@ -22,7 +24,7 @@ class TestUpdater(unittest.TestCase):
|
|||||||
|
|
||||||
def test_logger_setup(self):
|
def test_logger_setup(self):
|
||||||
"""Use logger to create a logging filter."""
|
"""Use logger to create a logging filter."""
|
||||||
logger.setup(None, self.log_config)
|
setup_component(MagicMock(), logger.DOMAIN, self.log_config)
|
||||||
|
|
||||||
self.assertTrue(len(logging.root.handlers) > 0)
|
self.assertTrue(len(logging.root.handlers) > 0)
|
||||||
handler = logging.root.handlers[-1]
|
handler = logging.root.handlers[-1]
|
||||||
@ -35,7 +37,7 @@ class TestUpdater(unittest.TestCase):
|
|||||||
|
|
||||||
def test_logger_test_filters(self):
|
def test_logger_test_filters(self):
|
||||||
"""Test resulting filter operation."""
|
"""Test resulting filter operation."""
|
||||||
logger.setup(None, self.log_config)
|
setup_component(MagicMock(), logger.DOMAIN, self.log_config)
|
||||||
|
|
||||||
log_filter = logging.root.handlers[-1].filters[0]
|
log_filter = logging.root.handlers[-1].filters[0]
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user