inspector/clients/tui/src/logger.ts
Bob Dickinson 2488ca5e38
feat: port CLI, TUI, and launcher from v1.5 into v2 (#1452)
Ports the CLI, TUI, and launcher from v1.5 into v2 behind a single
`mcp-inspector` entrypoint (launcher → web/cli/tui). Includes the
`mcp-inspector --web --dev` launcher fix (Vite alias resolution + prod-server
double-start), the root `postinstall` install cascade with simplified CI, and
spec/AGENTS docs (no-workspaces rationale, Development setup).

Closes #1246.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:27:49 -04:00

30 lines
893 B
TypeScript

import path from "node:path";
import pino from "pino";
import type { Logger } from "pino";
let tuiLoggerInstance: Logger | undefined;
/**
* TUI file logger for auth and InspectorClient events.
* Writes to ~/.mcp-inspector/auth.log so TUI console output is not corrupted.
* Lazy-initialized so --help and other early exits never open the log stream.
*/
export function getTuiLogger(): Logger {
if (!tuiLoggerInstance) {
const logDir =
process.env.MCP_INSPECTOR_LOG_DIR ??
path.join(
process.env.HOME || process.env.USERPROFILE || ".",
".mcp-inspector",
);
const logPath = path.join(logDir, "auth.log");
tuiLoggerInstance = pino(
{
name: "mcp-inspector-tui",
level: process.env.LOG_LEVEL ?? "info",
},
pino.destination({ dest: logPath, append: true, mkdir: true }),
);
}
return tuiLoggerInstance;
}