matterbridge-dyson-robot
Version:
A Matterbridge plugin that connects Dyson robot vacuums and air treatment devices to the Matter smart home ecosystem via their local or cloud MQTT APIs.
37 lines • 1.46 kB
JavaScript
// Matterbridge plugin for Dyson robot vacuum and air treatment devices
// Copyright © 2025 Alexander Thoukydides
import { AnsiLogger } from 'matterbridge/logger';
// A logger with an additional prefix
export class PrefixLogger extends AnsiLogger {
delegate;
prefix;
// Create a new logger
constructor(delegate, prefix) {
super({
extLog: delegate,
logTimestampFormat: delegate.logTimestampFormat,
logCustomTimestampFormat: delegate.logCustomTimestampFormat
});
this.delegate = delegate;
this.prefix = prefix;
}
// Get and set the log level (in the delegate logger)
get logLevel() { return this.delegate.logLevel; }
set logLevel(logLevel) { this.delegate.logLevel = logLevel; }
// Get and set the log name (in the delegate logger)
get logName() { return this.delegate.logName; }
set logName(logName) { this.delegate.logName = logName; }
// Log a message with sensitive data filtered
log(level, message, ...parameters) {
// Call the delegate directly (not super.log) to avoid double-logging
const savedLogName = this.delegate.logName;
try {
this.delegate.logName = `${savedLogName} - ${this.prefix}`;
this.delegate.log(level, message, ...parameters);
}
finally {
this.delegate.logName = savedLogName;
}
}
}
//# sourceMappingURL=logger-prefix.js.map