nikto-mcp
Version:
A secure MCP (Model Context Protocol) server that enables AI agents to interact with Nikto web server scanner
37 lines • 1.49 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.logger = void 0;
exports.createLogger = createLogger;
const tslib_1 = require("tslib");
const winston_1 = tslib_1.__importDefault(require("winston"));
const index_1 = require("../config/index");
const logFormat = winston_1.default.format.combine(winston_1.default.format.timestamp(), winston_1.default.format.errors({ stack: true }), winston_1.default.format.splat(), winston_1.default.format.json());
function getLogTransports() {
// In MCP mode, we need to keep stdout clean for JSON-RPC protocol
// Only errors and warnings should go to stderr, while info/debug should be discarded
if (process.env['MCP_STDOUT_LOGS'] !== 'allow') {
return [
new winston_1.default.transports.Console({
stderrLevels: ['error', 'warn'],
consoleWarnLevels: [],
level: 'warn', // Only log warn and error levels
}),
];
}
// In development/testing mode, allow normal console output
return [
new winston_1.default.transports.Console({
stderrLevels: ['error', 'warn'],
}),
];
}
function createLogger(service) {
return winston_1.default.createLogger({
level: index_1.config.logLevel,
format: logFormat,
defaultMeta: { service },
transports: getLogTransports(),
});
}
exports.logger = createLogger('nikto-mcp');
//# sourceMappingURL=logger.js.map