mirror of
https://github.com/home-assistant/core.git
synced 2025-11-14 21:40:16 +00:00
Add set_default_level to logger (#14703)
* Add set_default_service to logger * Fix 2-line lint error * Add set_default_level to services.yaml * Add tests for set_default_level * Remove function and add else when setting default
This commit is contained in:
committed by
Paulus Schoutsen
parent
10317a0f71
commit
fe018fd58c
@@ -15,6 +15,7 @@ DOMAIN = 'logger'
|
||||
|
||||
DATA_LOGGER = 'logger'
|
||||
|
||||
SERVICE_SET_DEFAULT_LEVEL = 'set_default_level'
|
||||
SERVICE_SET_LEVEL = 'set_level'
|
||||
|
||||
LOGSEVERITY = {
|
||||
@@ -31,8 +32,11 @@ LOGSEVERITY = {
|
||||
LOGGER_DEFAULT = 'default'
|
||||
LOGGER_LOGS = 'logs'
|
||||
|
||||
ATTR_LEVEL = 'level'
|
||||
|
||||
_VALID_LOG_LEVEL = vol.All(vol.Upper, vol.In(LOGSEVERITY))
|
||||
|
||||
SERVICE_SET_DEFAULT_LEVEL_SCHEMA = vol.Schema({ATTR_LEVEL: _VALID_LOG_LEVEL})
|
||||
SERVICE_SET_LEVEL_SCHEMA = vol.Schema({cv.string: _VALID_LOG_LEVEL})
|
||||
|
||||
CONFIG_SCHEMA = vol.Schema({
|
||||
@@ -76,12 +80,9 @@ async def async_setup(hass, config):
|
||||
"""Set up the logger component."""
|
||||
logfilter = {}
|
||||
|
||||
# Set default log severity
|
||||
logfilter[LOGGER_DEFAULT] = LOGSEVERITY['DEBUG']
|
||||
if LOGGER_DEFAULT in config.get(DOMAIN):
|
||||
logfilter[LOGGER_DEFAULT] = LOGSEVERITY[
|
||||
config.get(DOMAIN)[LOGGER_DEFAULT]
|
||||
]
|
||||
def set_default_log_level(level):
|
||||
"""Set the default log level for components."""
|
||||
logfilter[LOGGER_DEFAULT] = LOGSEVERITY[level]
|
||||
|
||||
def set_log_levels(logpoints):
|
||||
"""Set the specified log levels."""
|
||||
@@ -103,6 +104,12 @@ async def async_setup(hass, config):
|
||||
)
|
||||
)
|
||||
|
||||
# Set default log severity
|
||||
if LOGGER_DEFAULT in config.get(DOMAIN):
|
||||
set_default_log_level(config.get(DOMAIN)[LOGGER_DEFAULT])
|
||||
else:
|
||||
set_default_log_level('DEBUG')
|
||||
|
||||
logger = logging.getLogger('')
|
||||
logger.setLevel(logging.NOTSET)
|
||||
|
||||
@@ -116,7 +123,14 @@ async def async_setup(hass, config):
|
||||
|
||||
async def async_service_handler(service):
|
||||
"""Handle logger services."""
|
||||
set_log_levels(service.data)
|
||||
if service.service == SERVICE_SET_DEFAULT_LEVEL:
|
||||
set_default_log_level(service.data.get(ATTR_LEVEL))
|
||||
else:
|
||||
set_log_levels(service.data)
|
||||
|
||||
hass.services.async_register(
|
||||
DOMAIN, SERVICE_SET_DEFAULT_LEVEL, async_service_handler,
|
||||
schema=SERVICE_SET_DEFAULT_LEVEL_SCHEMA)
|
||||
|
||||
hass.services.async_register(
|
||||
DOMAIN, SERVICE_SET_LEVEL, async_service_handler,
|
||||
|
||||
Reference in New Issue
Block a user