Skip to main content
Glama

MCP Perplexity Server

logger.tsโ€ข1.81 kB
import winston from 'winston'; import config from '../config/index.js'; interface CustomLogger extends winston.Logger { getLevel(): string; setLevel(level: string): void; setName(name: string): void; } const logger: CustomLogger = winston.createLogger({ level: config.logging.level, format: winston.format.combine( winston.format.timestamp(), winston.format.printf(({ timestamp, level, message, ...rest }) => { const args = Object.keys(rest).length ? JSON.stringify(rest, null, 2) : ''; return `${timestamp} ${level}: ${message} ${args}`; }) ), transports: [ new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.printf(({ timestamp, level, message, ...rest }) => { let args = ''; if (typeof message === 'object') { args = JSON.stringify(message, null, 2); message = ''; } const extraArgs = Object.keys(rest).length ? JSON.stringify(rest, null, 2) : ''; return `${timestamp} ${level}: ${message} ${args} ${extraArgs}`.trim(); }) ), }), new winston.transports.File({ filename: 'error.log', level: 'error' }), new winston.transports.File({ filename: 'combined.log' }), ], }) as CustomLogger; // Add getLevel and setLevel methods to make it compatible with Slack Bolt logger.getLevel = (): string => logger.level as string; logger.setLevel = (level: string): void => { logger.level = level; logger.transports.forEach(transport => { transport.level = level; }); }; // Add setName method to satisfy Logger interface logger.setName = (name: string): void => { logger.defaultMeta = { ...logger.defaultMeta, name }; }; 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/samwang0723/mcp-perplexity'

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