diff --git a/src/main/java/org/qora/api/ApiService.java b/src/main/java/org/qora/api/ApiService.java index afa5ed9c..2a24f64e 100644 --- a/src/main/java/org/qora/api/ApiService.java +++ b/src/main/java/org/qora/api/ApiService.java @@ -4,7 +4,7 @@ import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; import org.eclipse.jetty.rewrite.handler.RedirectPatternRule; import org.eclipse.jetty.rewrite.handler.RewriteHandler; - +import org.eclipse.jetty.server.NCSARequestLog; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.server.handler.ErrorHandler; import org.eclipse.jetty.server.handler.InetAccessHandler; @@ -38,6 +38,16 @@ public class ApiService { ErrorHandler errorHandler = new ApiErrorHandler(); this.server.setErrorHandler(errorHandler); + // Request logging + if (Settings.getInstance().isApiLoggingEnabled()) { + NCSARequestLog requestLog = new NCSARequestLog("API-requests.log"); + requestLog.setAppend(true); + requestLog.setExtended(false); + requestLog.setLogTimeZone("UTC"); + requestLog.setLogLatency(true); + server.setRequestLog(requestLog); + } + // IP address based access control InetAccessHandler accessHandler = new InetAccessHandler(); for (String pattern : Settings.getInstance().getApiWhitelist()) { diff --git a/src/main/java/org/qora/settings/Settings.java b/src/main/java/org/qora/settings/Settings.java index 266adfe4..b8012fdc 100644 --- a/src/main/java/org/qora/settings/Settings.java +++ b/src/main/java/org/qora/settings/Settings.java @@ -43,6 +43,7 @@ public class Settings { "::1", "127.0.0.1" }; private Boolean apiRestricted; + private boolean apiLoggingEnabled = false; // Specific to this node private boolean wipeUnconfirmedOnStart = false; @@ -187,6 +188,10 @@ public class Settings { return !BlockChain.getInstance().isTestNet(); } + public boolean isApiLoggingEnabled() { + return this.apiLoggingEnabled; + } + public boolean getWipeUnconfirmedOnStart() { return this.wipeUnconfirmedOnStart; }