UNPKG

@aot-tech/clockify-mcp-server

Version:

MCP Server for Clockify time tracking integration with AI tools

91 lines (90 loc) 2.65 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.logApiCall = logApiCall; exports.logRequest = logRequest; exports.logResponse = logResponse; exports.logError = logError; exports.clearLogs = clearLogs; const fs_1 = __importDefault(require("fs")); const path_1 = __importDefault(require("path")); const ENABLE_LOGGING = false; const LOG_DIR = path_1.default.join(__dirname, "../../logs"); const API_LOG_FILE = path_1.default.join(LOG_DIR, "api-requests.log"); function ensureLogDirectory() { try { if (!fs_1.default.existsSync(LOG_DIR)) { fs_1.default.mkdirSync(LOG_DIR, { recursive: true }); } } catch (error) { console.error("Failed to create log directory:", error); } } ensureLogDirectory(); function logApiCall(entry) { if (!ENABLE_LOGGING) { return; } try { ensureLogDirectory(); const logLine = { ...entry, timestamp: entry.timestamp || new Date().toISOString(), }; const formattedLog = JSON.stringify(logLine, null, 2); const separator = "\n" + "=".repeat(80) + "\n"; fs_1.default.appendFileSync(API_LOG_FILE, `${separator}${formattedLog}${separator}\n`, "utf8"); } catch (error) { console.error("Failed to write to log file:", error); console.log("Log entry:", entry); } } function logRequest(endpoint, method, body) { logApiCall({ timestamp: new Date().toISOString(), type: "REQUEST", endpoint, method, body, }); } function logResponse(endpoint, response, duration) { logApiCall({ timestamp: new Date().toISOString(), type: "RESPONSE", endpoint, response, duration, }); } function logError(endpoint, error) { logApiCall({ timestamp: new Date().toISOString(), type: "ERROR", endpoint, error: { message: error.message || String(error), stack: error.stack, response: error.response?.data, }, }); } function clearLogs() { if (!ENABLE_LOGGING) { console.log("Logging is disabled, no logs to clear"); return; } try { if (fs_1.default.existsSync(API_LOG_FILE)) { fs_1.default.writeFileSync(API_LOG_FILE, "", "utf8"); console.log("Log file cleared successfully"); } } catch (error) { console.error("Failed to clear log file:", error); } }