@uoa/lambda-tracing
Version:
Library for logging & distributed tracing in UoA Lambda projects
65 lines (64 loc) • 2.3 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.UoaLogger = void 0;
const winston_1 = __importDefault(require("winston"));
class UoaLogger {
constructor(options) {
this.logger = winston_1.default.createLogger(options);
}
/**
* Function to log debug level messages.
* @param {string} message - Debug message.
*/
debug(message) {
this.logger.debug(message);
}
/**
* Function to log info level messages.
* @param {string} message - Information message.
*/
info(message) {
this.logger.info(message);
}
/**
* Function to log audit level messages.
* @param {AuditInformation} auditInformation - Audit Information object containing relevant details.
* @param {string=} message - Audit message (optional).
*/
audit(auditInformation, message) {
// Initialize logMessage with mandatory fields
let logMessage = `application:${auditInformation.application
? auditInformation.application.replace(/\s/g, "")
: "-"} ` +
`accessedBy:${auditInformation.accessedBy.replace(/\s/g, "")} ` +
`action:${auditInformation.action.toString().replace(/\s/g, "")} ` +
`owner:${auditInformation.ownerId.replace(/\s/g, "")} ` +
`resourceType:${auditInformation.resourceType.replace(/\s/g, "")} ` +
`resourceId:${auditInformation.resourceId
? auditInformation.resourceId.replace(/\s/g, "")
: "-"}`;
// Append additional message if provided
if (message) {
logMessage += ` ${message}`;
}
this.logger.log("audit", logMessage);
}
/**
* Function to log warn level messages.
* @param {string} message - Warn message.
*/
warn(message) {
this.logger.warn(message);
}
/**
* Function to log error level messages.
* @param {string} message - Error message.
*/
error(message) {
this.logger.error(message);
}
}
exports.UoaLogger = UoaLogger;
;