File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed
src/main/java/org/sonarsource/sonarqube/mcp/log Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change 1919import org .slf4j .Logger ;
2020import org .slf4j .LoggerFactory ;
2121
22+ /**
23+ * MCP-specific logger that outputs to both:
24+ * - STDERR: for MCP clients (the MCP protocol uses STDERR for diagnostic logs, STDOUT is reserved for JSON-RPC messages)
25+ * - Log file: via SLF4J/Logback for persistence and debugging
26+ */
2227public class McpLogger {
28+
2329 private static final Logger LOG = LoggerFactory .getLogger (McpLogger .class );
2430 private static final McpLogger INSTANCE = new McpLogger ();
2531
@@ -29,13 +35,22 @@ public static McpLogger getInstance() {
2935
3036 public void info (String message ) {
3137 LOG .info (message );
38+ logToStderr ("INFO" , message );
3239 }
3340
3441 public void warn (String message ) {
3542 LOG .warn (message );
43+ logToStderr ("WARN" , message );
3644 }
3745
3846 public void error (String message , Throwable throwable ) {
3947 LOG .error (message , throwable );
48+ logToStderr ("ERROR" , message );
49+ throwable .printStackTrace (System .err );
4050 }
51+
52+ private static void logToStderr (String level , String message ) {
53+ System .err .println (level + " SonarQube MCP Server - " + message );
54+ }
55+
4156}
You can’t perform that action at this time.
0 commit comments