mirror of
https://github.com/mtan93/homebridge.git
synced 2026-03-08 05:31:55 +00:00
Simpler logging
This commit is contained in:
@@ -3,8 +3,8 @@ import request from 'request';
|
||||
// Create a logger for our provider
|
||||
let log = homebridge.logger('homebridge-lockitron');
|
||||
|
||||
// Demonstrate that we were loaded
|
||||
log.info("Lockitron provider loaded!");
|
||||
// Demonstrate that we were loaded - run homebridge with the "-D" option to see this message
|
||||
log.debug("Lockitron provider loaded!");
|
||||
|
||||
module.exports = {
|
||||
|
||||
|
||||
13
lib/cli.js
13
lib/cli.js
@@ -1,17 +1,18 @@
|
||||
import program from 'commander';
|
||||
import log from 'npmlog';
|
||||
import prompt from 'prompt';
|
||||
import { HOMEBRIDGE_VERSION } from './homebridge';
|
||||
import { User } from './user';
|
||||
import { Server } from './server';
|
||||
import { Provider } from './provider';
|
||||
import { log, setDebugEnabled } from './logger';
|
||||
import { camelCaseToRegularForm } from './util';
|
||||
|
||||
export default function() {
|
||||
|
||||
// Global options (none currently) and version printout
|
||||
program
|
||||
.version(HOMEBRIDGE_VERSION);
|
||||
.version(HOMEBRIDGE_VERSION)
|
||||
.option('-D, --debug', 'turn on debug level logging', () => setDebugEnabled(true));
|
||||
|
||||
// Run the HomeBridge server
|
||||
program
|
||||
@@ -48,13 +49,13 @@ function runServer(options) {
|
||||
this.providerModules = providers.map((provider) => provider.load());
|
||||
}
|
||||
catch (err) {
|
||||
console.log(err.message);
|
||||
log.error(err.message);
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
function listInstalledProviders(options) {
|
||||
Provider.installed().forEach((provider) => console.log(provider.name));
|
||||
Provider.installed().forEach((provider) => log.info(provider.name));
|
||||
}
|
||||
|
||||
// Encapsulates configuring a provider via the command line.
|
||||
@@ -64,7 +65,7 @@ class CliProviderSetup {
|
||||
// if you didn't specify a provider, print help
|
||||
if (!providerName) {
|
||||
log.error("You must specify the name of the provider to setup. Type 'homebridge providers' to list the providers currently installed.");
|
||||
program.help();
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
this.providerName = providerName;
|
||||
@@ -117,7 +118,7 @@ class CliProviderSetup {
|
||||
log.info(`Setup complete.`);
|
||||
}
|
||||
else {
|
||||
log.error(`Setup failed: ${err.message}`);
|
||||
log.error(`Setup failed: ${err.message || err}`);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,11 @@
|
||||
import log from 'npmlog';
|
||||
import chalk from 'chalk';
|
||||
|
||||
let DEBUG_ENABLED = false;
|
||||
|
||||
// Turns on debug level logging
|
||||
export function setDebugEnabled(enabled) {
|
||||
DEBUG_ENABLED = enabled;
|
||||
}
|
||||
|
||||
// global cache of logger instances by provider name
|
||||
let loggerCache = {};
|
||||
@@ -8,20 +15,44 @@ export class Logger {
|
||||
constructor(providerName: string) {
|
||||
this.providerName = providerName;
|
||||
}
|
||||
|
||||
debug(msg: string) {
|
||||
if (DEBUG_ENABLED)
|
||||
this.log('debug', msg);
|
||||
}
|
||||
|
||||
info(msg: string) {
|
||||
log.info(`[${this.providerName}] ${msg}`);
|
||||
this.log('info', msg);
|
||||
}
|
||||
|
||||
warn(msg: string) {
|
||||
log.warn(`[${this.providerName}] ${msg}`);
|
||||
this.log('warn', msg);
|
||||
}
|
||||
|
||||
error(msg: string) {
|
||||
log.error(`[${this.providerName}] ${msg}`);
|
||||
this.log('error', msg);
|
||||
}
|
||||
|
||||
static forProvider(providerName: string):Logger {
|
||||
log(level: string, msg: string) {
|
||||
|
||||
if (level == 'debug')
|
||||
msg = chalk.gray(msg);
|
||||
else if (level == 'warn')
|
||||
msg = chalk.yellow(msg);
|
||||
else if (level == 'error')
|
||||
msg = chalk.bold.red(msg);
|
||||
|
||||
// prepend provider name if applicable
|
||||
if (this.providerName)
|
||||
msg = chalk.cyan(`[${this.providerName}]`) + " " + msg;
|
||||
|
||||
console.log(msg);
|
||||
}
|
||||
|
||||
static forProvider(providerName: string): Logger {
|
||||
return loggerCache[providerName] || (loggerCache[providerName] = new Logger(providerName));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// system logger, for internal use only
|
||||
export let log = new Logger();
|
||||
|
||||
@@ -27,9 +27,9 @@
|
||||
"preferGlobal": true,
|
||||
"dependencies": {
|
||||
"babel": "^5.6.14",
|
||||
"chalk": "^1.1.0",
|
||||
"commander": "^2.8.1",
|
||||
"hap-nodejs": "git+https://github.com/khaost/HAP-NodeJS#2a1bc8d99a2009317ab5da93faebea34c89f197c",
|
||||
"npmlog": "^1.2.1",
|
||||
"prompt": "^0.2.14",
|
||||
"semver": "^4.3.6"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user