Skip to content

Commit 6733c9e

Browse files
committed
fix: address comments
1 parent 0c57934 commit 6733c9e

File tree

1 file changed

+14
-24
lines changed

1 file changed

+14
-24
lines changed

src/logger.ts

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ import { LoggingMessageNotification } from "@modelcontextprotocol/sdk/types.js";
77
export type LogLevel = LoggingMessageNotification["params"]["level"];
88

99
abstract class LoggerBase {
10-
async initialize(): Promise<void> {
11-
return Promise.resolve();
12-
}
13-
1410
abstract log(level: LogLevel, id: MongoLogId, context: string, message: string): void;
1511

1612
info(id: MongoLogId, context: string, message: string): void {
@@ -53,17 +49,15 @@ class ConsoleLogger extends LoggerBase {
5349
}
5450

5551
class DiskLogger extends LoggerBase {
56-
private logWriter?: MongoLogWriter;
57-
58-
constructor(private logPath: string) {
52+
private constructor(private logWriter: MongoLogWriter) {
5953
super();
6054
}
6155

62-
async initialize(): Promise<void> {
63-
await fs.mkdir(this.logPath, { recursive: true });
56+
static async fromPath(logPath: string): Promise<DiskLogger> {
57+
await fs.mkdir(logPath, { recursive: true });
6458

6559
const manager = new MongoLogManager({
66-
directory: this.logPath,
60+
directory: logPath,
6761
retentionDays: 30,
6862
onwarn: console.warn,
6963
onerror: console.error,
@@ -73,17 +67,15 @@ class DiskLogger extends LoggerBase {
7367

7468
await manager.cleanupOldLogFiles();
7569

76-
this.logWriter = await manager.createLogWriter();
70+
const logWriter = await manager.createLogWriter();
71+
72+
return new DiskLogger(logWriter);
7773
}
7874

7975
log(level: LogLevel, id: MongoLogId, context: string, message: string): void {
8076
message = redact(message);
8177
const mongoDBLevel = this.mapToMongoDBLogLevel(level);
8278

83-
if (!this.logWriter) {
84-
throw new Error("DiskLogger is not initialized");
85-
}
86-
8779
this.logWriter[mongoDBLevel]("MONGODB-MCP", id, context, message);
8880
}
8981

@@ -136,12 +128,6 @@ class CompositeLogger extends LoggerBase {
136128
this.loggers = [...loggers];
137129
}
138130

139-
async initialize(): Promise<void> {
140-
for (const logger of this.loggers) {
141-
await logger.initialize();
142-
}
143-
}
144-
145131
setLoggers(...loggers: LoggerBase[]): void {
146132
if (loggers.length === 0) {
147133
throw new Error("At least one logger must be provided");
@@ -159,7 +145,11 @@ class CompositeLogger extends LoggerBase {
159145
const logger = new CompositeLogger();
160146
export default logger;
161147

162-
export async function initializeLogger(server: McpServer, logPath: string): Promise<void> {
163-
logger.setLoggers(new McpLogger(server), new DiskLogger(logPath));
164-
await logger.initialize();
148+
export async function initializeLogger(server: McpServer, logPath: string): Promise<LoggerBase> {
149+
const diskLogger = await DiskLogger.fromPath(logPath);
150+
const mcpLogger = new McpLogger(server);
151+
152+
logger.setLoggers(mcpLogger, diskLogger);
153+
154+
return logger;
165155
}

0 commit comments

Comments
 (0)