diff --git a/lib/controller.js b/lib/controller.js index 559e5bea..8ece19ff 100644 --- a/lib/controller.js +++ b/lib/controller.js @@ -14,6 +14,8 @@ const mqttDevicePrefixRegex = new RegExp(`${settings.get().mqtt.base_topic}/[\\w const pollInterval = 60 * 1000; // seconds * 1000. const softResetTimeout = 3600 * 1000; // seconds * 1000. +const allowedLogLevels = ['error', 'warn', 'info', 'debug']; + /** * Home Assistant requires ALL attributes to be present in ALL MQTT messages send by the device. * https://community.home-assistant.io/t/missing-value-with-mqtt-only-last-data-set-is-shown/47070/9 @@ -340,11 +342,11 @@ class Controller { if (option === 'permit_join') { this.zigbee.permitJoin(message.toString().toLowerCase() === 'true'); } else if (option === 'log_level') { - let level = message.toString().toLowerCase(); - if (['error', 'warn', 'info', 'debug'].indexOf(level) > -1) { + const level = message.toString().toLowerCase(); + if (allowedLogLevels.includes(level)) { logger.warn(`Switching log level to '${level}'`); - logger.transports.console.level = message.toString().toLowerCase(); - logger.transports.file.level = message.toString().toLowerCase(); + logger.transports.console.level = level; + logger.transports.file.level = level; } else { logger.error(`Could not set log level to '${level}'`); }