@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
JavaScript
//-----------------------------------------------------------------------------------------------------
// 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
};