From a5312ce68b5c7ffc3c1907e8fedd23c102c48663 Mon Sep 17 00:00:00 2001 From: Johann Richard <189003+johannrichard@users.noreply.github.com> Date: Fri, 4 Dec 2020 19:45:03 +0100 Subject: [PATCH] refactor(logging): make logging more robust - inherits from Logger - makes it less colourful under certain circumstances - should break less w.r.t. logging - can probably still be improved --- src/lib/dingzDaBaseAccessory.ts | 4 +++- src/lib/dingzLogHelper.ts | 24 ++++++++++-------------- 2 files changed, 13 insertions(+), 15 deletions(-) diff --git a/src/lib/dingzDaBaseAccessory.ts b/src/lib/dingzDaBaseAccessory.ts index 2af31e2..b35b2af 100644 --- a/src/lib/dingzDaBaseAccessory.ts +++ b/src/lib/dingzDaBaseAccessory.ts @@ -43,7 +43,9 @@ export class DingzDaBaseAccessory { this.device = this.accessory.context.device; this.baseUrl = `http://${this.device.address}`; - this.log = new DingzLogger(this.device.name, platform.log); + this.log = platform.log as DingzLogger; + this.log.dingzPrefix = this.device.name; + this.request = axios.create({ baseURL: this.baseUrl, timeout: RETRY_TIMEOUT * 1000, diff --git a/src/lib/dingzLogHelper.ts b/src/lib/dingzLogHelper.ts index f175139..efe64a2 100644 --- a/src/lib/dingzLogHelper.ts +++ b/src/lib/dingzLogHelper.ts @@ -4,18 +4,14 @@ import chalk from 'chalk'; /** * Drop-in helper class used to prefix debug messages with a colored dingz name */ -export class DingzLogger { +export class DingzLogger extends Logger { + public dingzPrefix = '[Device]'; /** * - * @param dingzPrefix the prefix to use in the messages * @param logger the homebridge logger to do the actual logging */ - constructor( - private readonly dingzPrefix: string, - private readonly logger: Logger, - ) { - // Force color - chalk.level = 1; + constructor(private readonly logger: Logger) { + super(); } /** @@ -36,25 +32,25 @@ export class DingzLogger { // DEBUG is enabled or not. // TODO: Wait for [homebridge/homebridge#2732](https://github.com/homebridge/homebridge/pull/2732) if (logLevel === LogLevel.DEBUG) { - this.logger.debug(message, ...parameters); + super.debug(message, ...parameters); } else { - this.logger.log(logLevel, message, ...parameters); + super.log(logLevel, message, ...parameters); } } public info(message: string, ...parameters: unknown[]): void { - this.log(LogLevel.INFO, `${message}`, ...parameters); + super.info(LogLevel.INFO, `${message}`, ...parameters); } public warn(message: string, ...parameters: unknown[]): void { - this.log(LogLevel.WARN, `${message}`, ...parameters); + super.log(LogLevel.WARN, `${message}`, ...parameters); } public error(message: string, ...parameters: unknown[]): void { - this.log(LogLevel.ERROR, `${message}`, ...parameters); + super.log(LogLevel.ERROR, `${message}`, ...parameters); } public debug(message: string, ...parameters: unknown[]): void { - this.log(LogLevel.DEBUG, `${message}`, ...parameters); + super.log(LogLevel.DEBUG, `${message}`, ...parameters); } }