UNPKG

@pickstar-2002/video-fetch-mcp

Version:

基于 MCP 协议的多平台视频下载服务端

51 lines (46 loc) 1.4 kB
import winston from 'winston'; import path from 'path'; import fs from 'fs'; // 创建日志目录 const logDir = 'logs'; if (!fs.existsSync(logDir)) { fs.mkdirSync(logDir, { recursive: true }); } // 检查是否为MCP模式(通过命令行参数判断) const isMcpMode = !process.argv.includes('api') && !process.argv.includes('rest'); const logger = winston.createLogger({ level: 'info', format: winston.format.combine( winston.format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }), winston.format.errors({ stack: true }), winston.format.json() ), defaultMeta: { service: 'mcp-video-downloader' }, transports: [ // 写入所有日志到 combined.log new winston.transports.File({ filename: path.join(logDir, 'combined.log'), maxsize: 5242880, // 5MB maxFiles: 5 }), // 写入错误日志到 error.log new winston.transports.File({ filename: path.join(logDir, 'error.log'), level: 'error', maxsize: 5242880, // 5MB maxFiles: 5 }) ] }); // 只在非MCP模式下输出到控制台,避免干扰MCP通信 if (!isMcpMode && process.env.NODE_ENV !== 'production') { logger.add(new winston.transports.Console({ format: winston.format.combine( winston.format.colorize(), winston.format.simple() ) })); } export { logger };