@superadnim/osint-mcp-server
Version:
Professional OSINT MCP Server for intelligence gathering with privacy protection
57 lines • 2.12 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
const winston_1 = __importDefault(require("winston"));
class Logger {
logger;
constructor(config) {
const logConfig = config || {
level: 'info',
structured: true,
auditEnabled: true,
};
const format = logConfig.structured
? winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.json())
: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.simple());
this.logger = winston_1.default.createLogger({
level: logConfig.level,
format,
transports: [
new winston_1.default.transports.Console({
format: winston_1.default.format.combine(winston_1.default.format.colorize(), winston_1.default.format.simple()),
}),
],
});
if (logConfig.auditEnabled) {
this.logger.add(new winston_1.default.transports.File({
filename: 'audit.log',
level: 'info',
format: winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.json()),
}));
}
}
debug(message, meta) {
this.logger.debug(message, meta);
}
info(message, meta) {
this.logger.info(message, meta);
}
warn(message, meta) {
this.logger.warn(message, meta);
}
error(message, meta) {
this.logger.error(message, meta);
}
audit(action, details) {
this.logger.info('AUDIT', {
action,
timestamp: new Date().toISOString(),
...details,
});
}
}
exports.Logger = Logger;
//# sourceMappingURL=logger.js.map