Skip to content

Commit

Permalink
refactor(logging): make logging more robust
Browse files Browse the repository at this point in the history
- inherits from Logger
- makes it less colourful under certain circumstances
- should break less w.r.t. logging
- can probably still be improved
  • Loading branch information
johannrichard committed Dec 4, 2020
1 parent 3231fac commit a5312ce
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 15 deletions.
4 changes: 3 additions & 1 deletion src/lib/dingzDaBaseAccessory.ts
Expand Up @@ -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,
Expand Down
24 changes: 10 additions & 14 deletions src/lib/dingzLogHelper.ts
Expand Up @@ -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();
}

/**
Expand All @@ -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);
}
}

0 comments on commit a5312ce

Please sign in to comment.