mirror of
https://github.com/mtan93/homebridge.git
synced 2026-03-08 21:02:38 +00:00
Provider logging
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
import request from 'request';
|
||||
|
||||
// Create a logger for our provider
|
||||
let log = homebridge.logger('homebridge-lockitron');
|
||||
|
||||
// Demonstrate that we were loaded
|
||||
console.log("Lockitron provider loaded!");
|
||||
log.info("Lockitron provider loaded!");
|
||||
|
||||
module.exports = {
|
||||
|
||||
@@ -19,6 +22,9 @@ module.exports = {
|
||||
let accessToken = homebridge.config.get('homebridge-lockitron.accessToken');
|
||||
|
||||
// prove that we got a value
|
||||
console.log(`Access Token: ${accessToken}`);
|
||||
log.info(`Access Token: ${accessToken}`);
|
||||
|
||||
// all is well.
|
||||
callback();
|
||||
}
|
||||
}
|
||||
|
||||
22
lib/cli.js
22
lib/cli.js
@@ -83,6 +83,9 @@ class CliProviderSetup {
|
||||
prompt.start();
|
||||
prompt.get(this.buildPromptSchema(), (err, result) => {
|
||||
|
||||
// add a linebreak after our last prompt
|
||||
console.log('');
|
||||
|
||||
// apply configuration values entered by the user
|
||||
for (let key:string in result) {
|
||||
let value:object = result[key];
|
||||
@@ -103,7 +106,24 @@ class CliProviderSetup {
|
||||
}
|
||||
|
||||
validateProviderConfig() {
|
||||
this.providerModule.validateConfig();
|
||||
|
||||
let currentlyInsideValidateConfigCall = false;
|
||||
|
||||
// we allow for the provider's validateConfig to call our callback immediately/synchronously
|
||||
// from inside validateConfig() itself.
|
||||
let callback = (err) => {
|
||||
|
||||
if (!err) {
|
||||
log.info(`Setup complete.`);
|
||||
}
|
||||
else {
|
||||
log.error(`Setup failed: ${err.message}`);
|
||||
}
|
||||
}
|
||||
|
||||
currentlyInsideValidateConfigCall = true;
|
||||
this.providerModule.validateConfig(callback);
|
||||
currentlyInsideValidateConfigCall = false;
|
||||
}
|
||||
|
||||
// builds a "schema" obejct for the prompt lib based on the provider's config spec
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import fs from 'fs';
|
||||
import { User } from './user';
|
||||
import { Logger } from './logger';
|
||||
|
||||
//
|
||||
// Main HomeBridge Module with global exports.
|
||||
@@ -9,4 +10,5 @@ import { User } from './user';
|
||||
export const HOMEBRIDGE_VERSION = JSON.parse(fs.readFileSync('package.json')).version;
|
||||
|
||||
// HomeBridge API
|
||||
export let config = User.config;
|
||||
export let config = User.config;
|
||||
export let logger = Logger.forProvider;
|
||||
27
lib/logger.js
Normal file
27
lib/logger.js
Normal file
@@ -0,0 +1,27 @@
|
||||
import log from 'npmlog';
|
||||
|
||||
// global cache of logger instances by provider name
|
||||
let loggerCache = {};
|
||||
|
||||
export class Logger {
|
||||
|
||||
constructor(providerName: string) {
|
||||
this.providerName = providerName;
|
||||
}
|
||||
|
||||
info(msg: string) {
|
||||
log.info(`[${this.providerName}] ${msg}`);
|
||||
}
|
||||
|
||||
warn(msg: string) {
|
||||
log.warn(`[${this.providerName}] ${msg}`);
|
||||
}
|
||||
|
||||
error(msg: string) {
|
||||
log.error(`[${this.providerName}] ${msg}`);
|
||||
}
|
||||
|
||||
static forProvider(providerName: string):Logger {
|
||||
return loggerCache[providerName] || (loggerCache[providerName] = new Logger(providerName));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user