rhombus-node-mcp 0.1.19 → 0.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/logger.js +49 -22
- package/package.json +2 -2
package/dist/logger.js
CHANGED
|
@@ -1,28 +1,55 @@
|
|
|
1
|
-
import path from "node:path";
|
|
2
1
|
import log4js from "log4js";
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
2
|
+
import path from "path";
|
|
3
|
+
import fs from "fs";
|
|
4
|
+
const baseDir = process.env.LOG_FOLDER ?? process.cwd();
|
|
5
|
+
const logDir = path.resolve(baseDir, "logs");
|
|
6
|
+
// Attempt to create log directory, but don't fail if we can't
|
|
7
|
+
let fileLoggingEnabled = false;
|
|
8
|
+
try {
|
|
9
|
+
fs.mkdirSync(logDir, { recursive: true });
|
|
10
|
+
fileLoggingEnabled = true;
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
// Log to stderr since we can't write to file
|
|
14
|
+
console.error(`Warning: Failed to create log directory at ${logDir}: ${error}`);
|
|
15
|
+
}
|
|
16
|
+
// Build appenders configuration dynamically
|
|
17
|
+
const appenders = {
|
|
18
|
+
// stderr for terminal visibility (always available)
|
|
19
|
+
stderr: { type: "stderr" },
|
|
20
|
+
// only send warn+ to stderr (never stdout)
|
|
21
|
+
stderrWarnPlus: {
|
|
22
|
+
type: "logLevelFilter",
|
|
23
|
+
appender: "stderr",
|
|
24
|
+
level: "warn",
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
// Only add file appender if we successfully created the directory
|
|
28
|
+
if (fileLoggingEnabled) {
|
|
29
|
+
appenders.mcpFile = {
|
|
30
|
+
type: "file",
|
|
31
|
+
filename: path.join(logDir, "rhombus-node-mcp.log"),
|
|
32
|
+
// prefer a number (bytes); 1 MiB:
|
|
33
|
+
maxLogSize: 1 * 1024 * 1024,
|
|
34
|
+
backups: 3,
|
|
35
|
+
compress: true,
|
|
36
|
+
layout: { type: "basic" },
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
// Configure categories based on available appenders
|
|
40
|
+
const categories = {
|
|
41
|
+
default: {
|
|
42
|
+
appenders: fileLoggingEnabled ? ["mcpFile", "stderrWarnPlus"] : ["stderrWarnPlus"],
|
|
43
|
+
level: "info",
|
|
15
44
|
},
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
level: "trace",
|
|
20
|
-
},
|
|
21
|
-
mcp: {
|
|
22
|
-
appenders: ["mcp", "stdout"],
|
|
23
|
-
level: "trace",
|
|
24
|
-
},
|
|
45
|
+
mcp: {
|
|
46
|
+
appenders: fileLoggingEnabled ? ["mcpFile", "stderrWarnPlus"] : ["stderrWarnPlus"],
|
|
47
|
+
level: "trace",
|
|
25
48
|
},
|
|
49
|
+
};
|
|
50
|
+
log4js.configure({
|
|
51
|
+
appenders,
|
|
52
|
+
categories,
|
|
26
53
|
});
|
|
27
54
|
export const getLogger = log4js.getLogger;
|
|
28
55
|
export const logger = log4js.getLogger("mcp");
|