Skip to main content
Glama
getLogger.ts1.73 kB
import util from 'node:util' import { Logger } from '../types.js' const defaultFormatArgs = (args: any[]) => args const log = ( { formatArgs = defaultFormatArgs, }: { formatArgs?: typeof defaultFormatArgs } = { formatArgs: defaultFormatArgs }, ) => (...args: any[]) => console.log('[supergateway]', ...formatArgs(args)) const logStderr = ( { formatArgs = defaultFormatArgs, }: { formatArgs?: typeof defaultFormatArgs } = { formatArgs: defaultFormatArgs }, ) => (...args: any[]) => console.error('[supergateway]', ...formatArgs(args)) const noneLogger: Logger = { info: () => {}, error: () => {}, } const infoLogger: Logger = { info: log(), error: logStderr(), } const infoLoggerStdio: Logger = { info: logStderr(), error: logStderr(), } const debugFormatArgs = (args: any[]) => args.map((arg) => { if (typeof arg === 'object') { return util.inspect(arg, { depth: null, colors: process.stderr.isTTY, compact: false, }) } return arg }) const debugLogger: Logger = { info: log({ formatArgs: debugFormatArgs }), error: logStderr({ formatArgs: debugFormatArgs }), } const debugLoggerStdio: Logger = { info: logStderr({ formatArgs: debugFormatArgs }), error: logStderr({ formatArgs: debugFormatArgs }), } export const getLogger = ({ logLevel, outputTransport, }: { logLevel: string outputTransport: string }): Logger => { if (logLevel === 'none') { return noneLogger } if (logLevel === 'debug') { return outputTransport === 'stdio' ? debugLoggerStdio : debugLogger } // info logLevel return outputTransport === 'stdio' ? infoLoggerStdio : infoLogger }

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/guangxiangdebizi/email-mcp'

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