Minimal lightweight logging for Homey Apps
This module can be used in a Homey App to send logs to the SimpleLogApp
npm install homey-simplelog-api
"permissions": ["homey:app:nl.nielsdeklerk.log"]
const { SimpleLogMixin } = require('homey-simplelog-api');
module.exports = class MyApp extends SimpleLogMixin(Homey.App)
this.logDebug('So easy it goes');
Error: error conditions
this.logError('logError-Message');
Warning: warning conditions
this.logWarning('logWarning-Message');
Notice: normal but significant condition
this.logNotice('logNotice-Message');
Informational: informational messages
this.logInfo('logInfo-Message');
Debug: debug-level messages
this.logDebug('logDebug-Message');
'use strict';
const Homey = require('homey');
const { SimpleLogMixin } = require('homey-simplelog-api');
// Development
if (process.env.DEBUG === '1') {
try {
// eslint-disable-next-line global-require
require('node:inspector').waitForDebugger();
} catch (err) {
// eslint-disable-next-line global-require
require('node:inspector').open(9229, '0.0.0.0', true);
}
}
module.exports = class App extends SimpleLogMixin(Homey.App) {
async onInit() {
this.logDebug('onInit()');
// ...
this.logInfo(`${this.homey.manifest.name.en} - v${this.homey.manifest.version} is started`);
}
}
'use strict';
const Homey = require('homey');
const { SimpleLogMixin } = require('homey-simplelog-api');
module.exports = class Driver extends SimpleLogMixin(Homey.Driver) {
async onInit(options = {}) {
this.logDebug('onInit()');
// ...
}
}
const Homey = require('homey');
const { SimpleLogMixin } = require('homey-simplelog-api');
module.exports = class Device extends SimpleLogMixin(Homey.Device) {
async onInit() {
this.logDebug('onInit()');
// ...
}
}
// ToDo
Rename the methods, it's fast (global search & replace), the code is more readable and the method calls the console message at the end anyway.
- this.log() > (rename-to) > this.logInfo()
- this.error() > (rename-to) > this.logError()
- this.debug() > (rename-to) > this.logDebug()
- TypeScript integration
- Add uncaughtException or unhandledRejection to log see.
....
Use at your own risk. I accept no responsibility for any damages caused by using this app.
© Chris Gross / cflat-inc.org, 2023