Skip to main content
Glama

Social Media MCP Server

by tayler-id
logger.ts1.63 kB
import winston from 'winston'; import config from '../config/index.js'; // Define log format const logFormat = winston.format.combine( winston.format.timestamp(), winston.format.errors({ stack: true }), winston.format.printf(({ level, message, timestamp, stack, ...meta }) => { const metaStr = Object.keys(meta).length ? ` ${JSON.stringify(meta)}` : ''; const stackStr = stack ? `\n${stack}` : ''; return `${timestamp} [${level.toUpperCase()}] ${message}${metaStr}${stackStr}`; }) ); // Create logger instance const logger = winston.createLogger({ level: config.server.logLevel, format: logFormat, transports: [ // Console transport new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), logFormat ), }), // File transport for errors new winston.transports.File({ filename: 'logs/error.log', level: 'error', }), // File transport for all logs new winston.transports.File({ filename: 'logs/combined.log', }), ], }); // Create component-specific loggers const createComponentLogger = (component: string) => { return { debug: (message: string, meta: object = {}) => logger.debug(`[${component}] ${message}`, meta), info: (message: string, meta: object = {}) => logger.info(`[${component}] ${message}`, meta), warn: (message: string, meta: object = {}) => logger.warn(`[${component}] ${message}`, meta), error: (message: string, meta: object = {}) => logger.error(`[${component}] ${message}`, meta), }; }; export default logger; export { createComponentLogger };

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/tayler-id/social-media-mcp'

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