import jamsglobal = require("./jamsglobal"); import jamsconfig = require("./config"); export class Logging { // #region Properties program: any = {}; parser: string = ">"; debugtext: string; verbosetext: string; logtext: string; apptext: string; warningtext: string; errortext: string; global: any; // #endregion // #region Constructor constructor(program, config: jamsconfig.Config) { this.global = new jamsglobal.Global(config.locale, config); this.program = program; if (program === {}) { program.verbose = false; program.debug = false; } this.debugtext = this.global.getTextUpper("debug"); this.logtext = this.global.getTextUpper("log"); this.apptext = this.global.getText("productname"); this.verbosetext = this.global.getTextUpper("verbose"); this.warningtext = this.global.getTextUpper("warning"); this.errortext = this.global.getTextUpper("error"); } // #endregion // #region Logging Methods debug(debuglist: string, overrideflag: boolean = false) { if (this.program.debug || overrideflag) { this.log(this.debugtext, debuglist); } } verbose(verboseitem: string, overrideflag: boolean = false) { if (this.program.verbose || overrideflag) { this.log(this.verbosetext, verboseitem); } } warning(warningitem: string, overrideflag: boolean = false) { if (this.program.verbose || overrideflag) { this.log(this.warningtext, warningitem); } } error(erroritem: string, ignoreerror: boolean = true) { this.log(this.errortext, this.getcustomerrormessage(erroritem)); if (!ignoreerror) { throw new Error(this.errortext); } } jamsresult(resultitem: string) { this.log(this.apptext, resultitem); } log(preface: string, logitem: string) { console.log(`${preface}${this.parser} ${logitem}`); } // #endregion // #region Helper Methods getcustomerrormessage(text: string) { var returntext: string; try { switch (text) { case "connect ECONNREFUSED": returntext = this.global.getText("errornoserver"); break; default: returntext = text; break; } } catch (ex) { returntext = text; } return returntext; } // #endregion }