diff --git a/src/lib/logger.ts b/src/lib/logger.ts index 920c05f958560..aa09cb5afaf8f 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -1,10 +1,14 @@ import {Logger} from './types'; export let logger: Logger = { - debug: (message, namespace) => console.debug(`${namespace}: ${message}`), - info: (message, namespace) => console.info(`${namespace}: ${message}`), - warning: (message, namespace) => console.warn(`${namespace}: ${message}`), - error: (message, namespace) => console.error(`${namespace}: ${message}`), + debug: (messageOrLambda, namespace) => + console.debug(`${namespace}: ${typeof messageOrLambda === 'function' ? messageOrLambda() : messageOrLambda}`), + info: (messageOrLambda, namespace) => + console.info(`${namespace}: ${typeof messageOrLambda === 'function' ? messageOrLambda() : messageOrLambda}`), + warning: (messageOrLambda, namespace) => + console.warn(`${namespace}: ${typeof messageOrLambda === 'function' ? messageOrLambda() : messageOrLambda}`), + error: (messageOrLambda, namespace) => + console.error(`${namespace}: ${typeof messageOrLambda === 'function' ? messageOrLambda() : messageOrLambda}`), }; export function setLogger(l: Logger): void { diff --git a/src/lib/types.ts b/src/lib/types.ts index 0ebf948cbd639..a4630de81d414 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -7,10 +7,10 @@ import type {FrameControl} from 'zigbee-herdsman/dist/zspec/zcl/definition/tstyp import * as exposes from './exposes'; export interface Logger { - debug: (message: string, namespace: string) => void; - info: (message: string, namespace: string) => void; - warning: (message: string, namespace: string) => void; - error: (message: string, namespace: string) => void; + debug: (messageOrLambda: string | (() => string), namespace: string) => void; + info: (messageOrLambda: string | (() => string), namespace: string) => void; + warning: (messageOrLambda: string | (() => string), namespace: string) => void; + error: (messageOrLambda: string | (() => string), namespace: string) => void; } export type Range = [number, number];