mirror of
https://github.com/mtan93/homebridge.git
synced 2026-04-09 22:04:45 +01:00
Provider logging
This commit is contained in:
@@ -1,7 +1,10 @@
|
|||||||
import request from 'request';
|
import request from 'request';
|
||||||
|
|
||||||
|
// Create a logger for our provider
|
||||||
|
let log = homebridge.logger('homebridge-lockitron');
|
||||||
|
|
||||||
// Demonstrate that we were loaded
|
// Demonstrate that we were loaded
|
||||||
console.log("Lockitron provider loaded!");
|
log.info("Lockitron provider loaded!");
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
||||||
@@ -19,6 +22,9 @@ module.exports = {
|
|||||||
let accessToken = homebridge.config.get('homebridge-lockitron.accessToken');
|
let accessToken = homebridge.config.get('homebridge-lockitron.accessToken');
|
||||||
|
|
||||||
// prove that we got a value
|
// 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.start();
|
||||||
prompt.get(this.buildPromptSchema(), (err, result) => {
|
prompt.get(this.buildPromptSchema(), (err, result) => {
|
||||||
|
|
||||||
|
// add a linebreak after our last prompt
|
||||||
|
console.log('');
|
||||||
|
|
||||||
// apply configuration values entered by the user
|
// apply configuration values entered by the user
|
||||||
for (let key:string in result) {
|
for (let key:string in result) {
|
||||||
let value:object = result[key];
|
let value:object = result[key];
|
||||||
@@ -103,7 +106,24 @@ class CliProviderSetup {
|
|||||||
}
|
}
|
||||||
|
|
||||||
validateProviderConfig() {
|
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
|
// builds a "schema" obejct for the prompt lib based on the provider's config spec
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import { User } from './user';
|
import { User } from './user';
|
||||||
|
import { Logger } from './logger';
|
||||||
|
|
||||||
//
|
//
|
||||||
// Main HomeBridge Module with global exports.
|
// 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;
|
export const HOMEBRIDGE_VERSION = JSON.parse(fs.readFileSync('package.json')).version;
|
||||||
|
|
||||||
// HomeBridge API
|
// 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