tm-utils
Version:
This is the accumulated reused functions for TM30 global
94 lines (82 loc) • 2.66 kB
JavaScript
;
const graylog = require("./graylog");
const logger = (error, stack, additionalMessage, isCritical = false) => {
console.log(error, stack, additionalMessage, isCritical);
if(graylog){
if (process.env.NODE_ENV != "development") {
if(isCritical)
graylog.critical(error, stack, additionalMessage, new Date());
else
graylog.error(error, stack, additionalMessage, new Date());
}
}else{
console.log("No Graylog", error, stack, additionalMessage, isCritical);
}
};
const logException = (e,payload, isCritical = false) => {
if(graylog){
if (process.env.NODE_ENV != "development") {
if(isCritical)
graylog.critical(e.message, e.stack, payload, new Date());
else
graylog.error(e.message, e.stack, payload, new Date());
}
}else{
console.log("No Graylog", error, e.stack, payload, isCritical);
}
};
process.on("uncaughtException", (ex) => {
logger(ex.message, ex.stack, {
error: ex.toString()
});
process.exit(0);
});
process.on("uncaughtRejection",(ex) => {
logger(ex.message, ex.stack, {
error: ex.toString()
});
process.exit(0);
});
process.on("unhandledRejection",(ex) => {
logger(ex.message, ex.stack, {
error: ex.toString()
});
process.exit(0);
});
global.logger = logger;
global.logException = logException;
global.resolveAxiosError = error => {
let formattedError;
try {
if(error && error.response){
formattedError = {
status: error.response.status,
statusText: error.response.statusText,
message: error.response.data.error,
url: error.response.config.url,
params: error.response.config.params,
data: error.response.config.data,
headers: error.response.headers,
raw: error.response.data
};
}else{
formattedError = {
status: 500,
statusText: error.message || "Unknown Error",
message: error.message || "Oops, An Error Occurred",
stack: error.stack
};
}
} catch (ex) {
formattedError = {
status: 500,
statusText: "Unknown Error",
message: "Oops, An Error Occurred",
error: ex.message,
stack: ex.stack
};
}finally {
logger(formattedError.message, formattedError.stack || {}, formattedError);
}
return formattedError;
};