UNPKG

@matteogheza/node-eventlog

Version:

An event log utility for Windows 10 & Server 2012/2016 that actually works - Updated to node-addon-api v8

48 lines (38 loc) 1.29 kB
//----------------------------------------------------------------------------------------------------- // Platform check if (process.platform !== 'win32') { throw new Error('@matteogheza/node-eventlog is only supported on Windows platforms. Current platform: ' + process.platform); } const binary = require('@mapbox/node-pre-gyp'); const path = require('path'); const binding_path = binary.find(path.resolve(path.join(__dirname,'./package.json'))); const modEventLogger = require(binding_path); //----------------------------------------------------------------------------------------------------- const getEnumMember = (severity) => { switch (severity) { case "error": return 0; case "warn": return 1; case "info": return 2; default: return 0; } }; class EventLog { constructor(source) { this.source = source; this._logger = modEventLogger(source); } log(message, severity = 'info', code = 1000) { return new Promise( (resolve, reject) => { this._logger.log(getEnumMember(severity), message, code).then( (v) => { resolve(v); }).catch( (e) => { reject(e); }); }) } } module.exports = { EventLog };