@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
96 lines • 2.5 kB
JavaScript
;
/**
* Logger Adapter for SDK Security
* Adapts various logger implementations to match our SecurityLoggerContract
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.LoggerAdapter = void 0;
exports.createConsoleLogger = createConsoleLogger;
class LoggerAdapter {
constructor(logger) {
this.logger = logger;
}
/**
* Log info message
*/
info(message, meta) {
if (this.logger.info) {
this.logger.info(message, meta);
}
else if (this.logger.log) {
this.logger.log('info', message, meta);
}
else {
console.info(message, meta);
}
}
/**
* Log warning message
*/
warn(message, meta) {
if (this.logger.warn) {
this.logger.warn(message, meta);
}
else if (this.logger.warning) {
this.logger.warning(message, meta);
}
else if (this.logger.log) {
this.logger.log('warn', message, meta);
}
else {
console.warn(message, meta);
}
}
/**
* Log error message
*/
error(message, meta) {
if (this.logger.error) {
this.logger.error(message, meta);
}
else if (this.logger.log) {
this.logger.log('error', message, meta);
}
else {
console.error(message, meta);
}
}
/**
* Log debug message
*/
debug(message, meta) {
if (this.logger.debug) {
this.logger.debug(message, meta);
}
else if (this.logger.log) {
this.logger.log('debug', message, meta);
}
else {
console.debug(message, meta);
}
}
/**
* Create child logger
*/
child(context) {
if (this.logger.child) {
return new LoggerAdapter(this.logger.child(context));
}
// Fallback: return self if child not supported
return this;
}
}
exports.LoggerAdapter = LoggerAdapter;
/**
* Create a default console logger
*/
function createConsoleLogger() {
return {
info: (message, meta) => console.info(message, meta),
warn: (message, meta) => console.warn(message, meta),
error: (message, meta) => console.error(message, meta),
debug: (message, meta) => console.debug(message, meta),
child: () => createConsoleLogger()
};
}
//# sourceMappingURL=logger.adapter.js.map