Skip to main content
Glama
logger.tsโ€ข1.14 kB
import fs from 'fs' import env from './env.js' import pkg from './pkg.js' import util from './util.js' // Can't log to stdio as it disrupts the JSON-RPC protocol const LOG_FILE = util.resolve('./logs.json', util.REPO) function formatMessage(level: string, msg: string, data?: object): string { const logEntry = { timestamp: new Date().toISOString(), level, version: pkg.version, cwd: util.CWD, message: msg, ...data, } return JSON.stringify(logEntry) + '\n' } function writeLog(level: string, msg: string, data?: object): void { if (!env.DEBUG) { return } try { const formatted = formatMessage(level, msg, data) fs.appendFileSync(LOG_FILE, formatted, 'utf-8') } catch (err) { // Fallback to stderr if file writing fails console.error('Logger error:', err) } } const logger = { log: (msg: string, data?: object) => writeLog('LOG', msg, data), info: (msg: string, data?: object) => writeLog('INFO', msg, data), warn: (msg: string, data?: object) => writeLog('WARN', msg, data), error: (msg: string, data?: object) => writeLog('ERROR', msg, data), } export default logger

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/flesler/mcp-tasks'

If you have feedback or need assistance with the MCP directory API, please join our Discord server