mirror of
https://github.com/Koenkk/zigbee2mqtt.git
synced 2026-08-29 07:08:56 +00:00
* Add namespaced levels for logger. Add NS to mqtt. Deprecate 'warn'. * Improve setting validation. * Fix setting through frontend * Support reload + frontend improvements * update description * remove requiresRestart * Fix tests. * Fix namespaced logging at lower levels. Add better tests. --------- Co-authored-by: Koen Kanters <koenkanters94@gmail.com>
42 lines
1.6 KiB
JavaScript
42 lines
1.6 KiB
JavaScript
let level = 'info';
|
|
let debugNamespaceIgnore = '';
|
|
let namespacedLevels = {};
|
|
|
|
let transports = [];
|
|
|
|
let transportsEnabled = false;
|
|
const callTransports = (level, message, namespace) => {
|
|
if (transportsEnabled) {
|
|
for (const transport of transports) {
|
|
transport.log({level, message, namespace}, () => {});
|
|
}
|
|
}
|
|
}
|
|
|
|
const mock = {
|
|
init: jest.fn(),
|
|
info: jest.fn().mockImplementation((msg, namespace = 'z2m') => callTransports('info', msg, namespace)),
|
|
warning: jest.fn().mockImplementation((msg, namespace = 'z2m') => callTransports('warning', msg, namespace)),
|
|
error: jest.fn().mockImplementation((msg, namespace = 'z2m') => callTransports('error', msg, namespace)),
|
|
debug: jest.fn().mockImplementation((msg, namespace = 'z2m') => callTransports('debug', msg, namespace)),
|
|
cleanup: jest.fn(),
|
|
logOutput: jest.fn(),
|
|
add: (transport) => transports.push(transport),
|
|
addTransport: (transport) => transports.push(transport),
|
|
removeTransport: (transport) => {
|
|
transports = transports.filter((t) => t !== transport);
|
|
},
|
|
setLevel: (newLevel) => {level = newLevel},
|
|
getLevel: () => level,
|
|
setNamespacedLevels: (nsLevels) => {namespacedLevels = nsLevels},
|
|
getNamespacedLevels: () => namespacedLevels,
|
|
setDebugNamespaceIgnore: (newIgnore) => {debugNamespaceIgnore = newIgnore},
|
|
getDebugNamespaceIgnore: () => debugNamespaceIgnore,
|
|
setTransportsEnabled: (value) => {transportsEnabled = value},
|
|
end: jest.fn(),
|
|
};
|
|
|
|
jest.mock('../../lib/util/logger', () => (mock));
|
|
|
|
module.exports = {...mock};
|