Skip to content

Commit 85d70ef

Browse files
committed
fix: move logger
1 parent a453048 commit 85d70ef

File tree

3 files changed

+29
-13
lines changed

3 files changed

+29
-13
lines changed

src/common/logger.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ export const LogId = {
1212
serverCloseRequested: mongoLogId(1_000_003),
1313
serverClosed: mongoLogId(1_000_004),
1414
serverCloseFailure: mongoLogId(1_000_005),
15+
serverDuplicateLoggers: mongoLogId(1_000_006),
1516

1617
atlasCheckCredentials: mongoLogId(1_001_001),
1718
atlasDeleteDatabaseUserFailure: mongoLogId(1_001_002),

src/index.ts

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -26,18 +26,6 @@ try {
2626
version: packageInfo.version,
2727
});
2828

29-
let loggers: LoggerBase[] = [];
30-
if (config.loggers.includes("mcp")) {
31-
loggers.push(new McpLogger(mcpServer));
32-
}
33-
if (config.loggers.includes("disk")) {
34-
loggers.push(await DiskLogger.fromPath(config.logPath));
35-
}
36-
if (config.loggers.includes("stderr")) {
37-
loggers.push(new ConsoleLogger());
38-
}
39-
logger.setLoggers(...loggers);
40-
4129
const server = new Server({
4230
mcpServer,
4331
session,

src/server.ts

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Session } from "./common/session.js";
33
import { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
44
import { AtlasTools } from "./tools/atlas/tools.js";
55
import { MongoDbTools } from "./tools/mongodb/tools.js";
6-
import logger, { LogId } from "./common/logger.js";
6+
import logger, { LogId, LoggerBase, McpLogger, DiskLogger, ConsoleLogger } from "./common/logger.js";
77
import { ObjectId } from "mongodb";
88
import { Telemetry } from "./telemetry/telemetry.js";
99
import { UserConfig } from "./common/config.js";
@@ -67,6 +67,18 @@ export class Server {
6767
return existingHandler(request, extra);
6868
});
6969

70+
const loggers: LoggerBase[] = [];
71+
if (this.userConfig.loggers.includes("mcp")) {
72+
loggers.push(new McpLogger(this.mcpServer));
73+
}
74+
if (this.userConfig.loggers.includes("disk")) {
75+
loggers.push(await DiskLogger.fromPath(this.userConfig.logPath));
76+
}
77+
if (this.userConfig.loggers.includes("stderr")) {
78+
loggers.push(new ConsoleLogger());
79+
}
80+
logger.setLoggers(...loggers);
81+
7082
this.mcpServer.server.oninitialized = () => {
7183
this.session.setAgentRunner(this.mcpServer.server.getClientVersion());
7284
this.session.sessionId = new ObjectId().toString();
@@ -189,6 +201,21 @@ export class Server {
189201
throw new Error(`Invalid httpPort: ${this.userConfig.httpPort}`);
190202
}
191203

204+
if (this.userConfig.loggers.length === 0) {
205+
throw new Error("No loggers found in config");
206+
}
207+
208+
const loggerTypes = new Set(this.userConfig.loggers);
209+
if (loggerTypes.size !== this.userConfig.loggers.length) {
210+
throw new Error("Duplicate loggers found in config");
211+
}
212+
213+
for (const loggerType of this.userConfig.loggers) {
214+
if (loggerType !== "mcp" && loggerType !== "disk" && loggerType !== "stderr") {
215+
throw new Error(`Invalid logger: ${loggerType}`);
216+
}
217+
}
218+
192219
if (this.userConfig.connectionString) {
193220
try {
194221
await this.session.connectToMongoDB(this.userConfig.connectionString, this.userConfig.connectOptions);

0 commit comments

Comments
 (0)