Fix nothing logged when log_level set to warn. https://github.com/Koenkk/zigbee2mqtt/issues/5812

This commit is contained in:
Koen Kanters
2021-01-18 18:31:47 +01:00
parent 48767a7bcf
commit d1a1035e43
2 changed files with 17 additions and 4 deletions
+9 -4
View File
@@ -21,10 +21,14 @@ if (output.includes('file')) {
fx.mkdirSync(directory);
}
const z2mToWinstonLevel = (level) => level === 'warn' ? 'warning' : level;
const winstonToZ2mLevel = (level) => level === 'warning' ? 'warn' : level;
// Determine the log level.
const level = settings.get().advanced.log_level;
let level = settings.get().advanced.log_level;
const validLevels = ['info', 'error', 'warn', 'debug'];
assert(validLevels.includes(level), `'${level}' is not a valid log_level, use one of '${validLevels.join(', ')}'`);
level = z2mToWinstonLevel(level);
const levelWithCompensatedLength = {
'info': 'info ',
@@ -45,7 +49,7 @@ const transportsToUse = [
winston.format.timestamp({format: timestampFormat}),
winston.format.printf(/* istanbul ignore next */(info) => {
let {timestamp, level, message} = info;
level = level === 'warning' ? 'warn' : level;
level = winstonToZ2mLevel(level);
const prefix = colorizer.colorize(level, `Zigbee2MQTT:${levelWithCompensatedLength[level]}`);
return `${prefix} ${timestamp.split('.')[0]}: ${message}`;
}),
@@ -63,7 +67,7 @@ const transportFileOptions = {
winston.format.timestamp({format: timestampFormat}),
winston.format.printf(/* istanbul ignore next */(info) => {
let {timestamp, level, message} = info;
level = level === 'warning' ? 'warn' : level;
level = winstonToZ2mLevel(level);
return `${levelWithCompensatedLength[level]} ${timestamp.split('.')[0]}: ${message}`;
}),
),
@@ -131,8 +135,9 @@ function logOutput() {
logger.cleanup = cleanup;
logger.logOutput = logOutput;
logger.getLevel = () => transportsToUse[0].level;
logger.getLevel = () => winstonToZ2mLevel(transportsToUse[0].level);
logger.setLevel = (level) => {
level = z2mToWinstonLevel(level);
logger.transports.forEach((transport) => transport.level = level);
};
+8
View File
@@ -66,6 +66,14 @@ describe('Logger', () => {
expect(logger.getLevel()).toBe('debug');
});
it('Set and get log level warn <-> warning', () => {
const logger = require('../lib/util/logger.js');
logger.logOutput();
logger.setLevel('warn');
expect(logger.transports[0].level).toBe('warning');
expect(logger.getLevel()).toBe('warn');
});
it('Logger should be console and file by default', () => {
const logger = require('../lib/util/logger.js');
logger.logOutput();