import org.sonar.process.Props;
import static org.sonar.process.LogbackHelper.LogDomain;
+import static org.sonar.server.platform.web.requestid.RequestIdMDCStorage.HTTP_REQUEST_ID_MDC_KEY;
/**
* Configure logback for the Web Server process. Logs are written to file "web.log" in SQ's log directory.
public class WebServerProcessLogging extends ServerProcessLogging {
public WebServerProcessLogging() {
- super(ProcessId.WEB_SERVER, "%X{ID}");
+ super(ProcessId.WEB_SERVER, "%X{" + HTTP_REQUEST_ID_MDC_KEY + "}");
}
@Override
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
-import org.slf4j.MDC;
import org.sonar.server.platform.Platform;
-import static java.util.Objects.requireNonNull;
-
/**
* A {@link Filter} that puts and removes the HTTP request ID from the {@link org.slf4j.MDC}.
*/
public class RequestIdFilter implements Filter {
+
private final Platform platform;
public RequestIdFilter() {
// nothing to do
}
- /**
- * Wraps MDC calls to store the HTTP request ID in the {@link MDC} into an {@link AutoCloseable}.
- */
- static class RequestIdMDCStorage implements AutoCloseable {
- private static final String HTTP_REQUEST_ID_MDC_KEY = "HTTP_REQUEST_ID";
-
- public RequestIdMDCStorage(String requestId) {
- MDC.put(HTTP_REQUEST_ID_MDC_KEY, requireNonNull(requestId, "Request ID can't be null"));
- }
-
- @Override
- public void close() {
- MDC.remove(HTTP_REQUEST_ID_MDC_KEY);
- }
- }
}
--- /dev/null
+/*
+ * SonarQube
+ * Copyright (C) 2009-2016 SonarSource SA
+ * mailto:contact AT sonarsource DOT com
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+package org.sonar.server.platform.web.requestid;
+
+import org.slf4j.MDC;
+
+import static java.util.Objects.requireNonNull;
+
+/**
+ * Wraps MDC calls to store the HTTP request ID in the {@link MDC} into an {@link AutoCloseable}.
+ */
+public class RequestIdMDCStorage implements AutoCloseable {
+ public static final String HTTP_REQUEST_ID_MDC_KEY = "HTTP_REQUEST_ID";
+
+ RequestIdMDCStorage(String requestId) {
+ MDC.put(HTTP_REQUEST_ID_MDC_KEY, requireNonNull(requestId, "Request ID can't be null"));
+ }
+
+ @Override
+ public void close() {
+ MDC.remove(HTTP_REQUEST_ID_MDC_KEY);
+ }
+}
assertThat(fileAppender.getFile()).isEqualTo(new File(logDir, "web.log").getAbsolutePath());
assertThat(fileAppender.getEncoder()).isInstanceOf(PatternLayoutEncoder.class);
PatternLayoutEncoder encoder = (PatternLayoutEncoder) fileAppender.getEncoder();
- assertThat(encoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level web[%X{ID}][%logger{20}] %msg%n");
+ assertThat(encoder.getPattern()).isEqualTo("%d{yyyy.MM.dd HH:mm:ss} %-5level web[%X{HTTP_REQUEST_ID}][%logger{20}] %msg%n");
}
@Test