@fran-834/gs-microservice-core
Version:
Core package for Node.js microservices by Galduria Software. Includes security, logging, validation, and error handling middlewares.
54 lines (53 loc) • 1.29 kB
JavaScript
import logger from "./logger.js";
/**
* Logs an operation with the request ID.
*/
const logOperation = (req) => {
const log = {
id: req.id,
};
logger.info("operation", log);
};
/**
* Logs an informational message.
*/
const logInfo = (message) => {
logger.info(message);
};
/**
* Logs a debug message if in development or docker environment.
*/
const logDebug = (message) => {
if (process.env.NODE_ENV === "development" || process.env.NODE_ENV === "docker") {
logger.debug(message);
}
};
/**
* Logs an error with the request ID and cleans the error object.
*/
const logError = (req, error) => {
// Clean the error object
if (error && error.errors && error.errors.length > 0) {
error.errors.forEach((err) => {
delete err.instance;
});
}
if (error && error.fields) {
delete error.fields;
}
if (error && error.original) {
delete error.original;
}
if (error && error.parent) {
delete error.parent;
}
if (error && error.sql) {
delete error.sql;
}
const log = {
id: req ? req.id : "",
error: { ...error, stack: error.stack || "" },
};
logger.error("error", log);
};
export { logOperation, logInfo, logDebug, logError };