homey-simplelog-api

1.0.5 • Public • Published

SimpleLogApp API for Homey-Developers

Minimal lightweight logging for Homey Apps

This module can be used in a Homey App to send logs to the SimpleLogApp


Setting it up

Install:

npm install homey-simplelog-api

Add permission:

 "permissions": ["homey:app:nl.nielsdeklerk.log"]

Import package:

const { SimpleLogMixin } = require('homey-simplelog-api');

Define SimpleLog mixim:

module.exports = class MyApp extends SimpleLogMixin(Homey.App)

Use it:

this.logDebug('So easy it goes');

API

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');

Code examples

Homey app

'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`);
  }
}

Homey driver

'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()');

    // ...

  }
}

Homey device

const Homey = require('homey');

const { SimpleLogMixin } = require('homey-simplelog-api');

module.exports = class Device extends SimpleLogMixin(Homey.Device) {

  async onInit() {
    this.logDebug('onInit()');

    // ...

  }
}

Homey SimpleClass or Object

// ToDo

Migrations guide

Preferred

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()

Useful Links

Logging

Mixin


ToDo

  • TypeScript integration
  • Add uncaughtException or unhandledRejection to log see.

Thanks

....


Disclaimer

Use at your own risk. I accept no responsibility for any damages caused by using this app.


Copyright

© Chris Gross / cflat-inc.org, 2023

Readme

Keywords

none

Package Sidebar

Install

npm i homey-simplelog-api

Weekly Downloads

2

Version

1.0.5

License

ISC

Unpacked Size

12.4 kB

Total Files

9

Last publish

Collaborators

  • cghome