From 4afe794343716d8f29480dfac669d26a0549de3e Mon Sep 17 00:00:00 2001 From: milanmajchrak Date: Fri, 13 Mar 2026 16:29:04 +0100 Subject: [PATCH] Reduce warn logs noise (#1268) + line length fix (#1274) --- .../DSpaceApiExceptionControllerAdvice.java | 29 ++++++++++++++++--- dspace/config/log4j2.xml | 7 +++++ 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/dspace-server-webapp/src/main/java/org/dspace/app/rest/exception/DSpaceApiExceptionControllerAdvice.java b/dspace-server-webapp/src/main/java/org/dspace/app/rest/exception/DSpaceApiExceptionControllerAdvice.java index 6bfb43297b54..e211a09afca3 100644 --- a/dspace-server-webapp/src/main/java/org/dspace/app/rest/exception/DSpaceApiExceptionControllerAdvice.java +++ b/dspace-server-webapp/src/main/java/org/dspace/app/rest/exception/DSpaceApiExceptionControllerAdvice.java @@ -61,6 +61,14 @@ public class DSpaceApiExceptionControllerAdvice extends ResponseEntityExceptionHandler { private static final Logger log = LogManager.getLogger(); + /** + * Dedicated logger for 404 NOT_FOUND responses. Configured at OFF level by default + * so that expected 404s don't flood production logs. + * Set to WARN in log4j2.xml to see 404 responses in logs. + */ + private static final Logger notFoundLog = + LogManager.getLogger("org.dspace.app.rest.exception.DSpaceApiExceptionControllerAdvice.NotFound"); + /** * Default collection of HTTP error codes to log as ERROR with full stack trace. */ @@ -290,10 +298,23 @@ private void sendErrorResponse(final HttpServletRequest request, } log.warn("{} (status:{} exception: {} at: {})", message, statusCode, exceptionMessage, location); + }String location; + String exceptionMessage; + if (null == ex) { + exceptionMessage = "none"; + location = "unknown"; + } else { + exceptionMessage = ex.getMessage(); + StackTraceElement[] trace = ex.getStackTrace(); + location = trace.length <= 0 ? "unknown" : trace[0].toString(); + } + logClientError(statusCode, message,gClientError(int statusCode, String message, String exceptionMessage, String location) { + if (statusCode == HttpServletResponse.SC_NOT_FOUND) { + notFoundLog.warn("{} (status:{} exception: {} at: {})", message, statusCode, + exceptionMessage, location); + } else { + log.warn("{} (status:{} exception: {} at: {})", message, statusCode, + exceptionMessage, location); } - - //Exception properties will be set by org.springframework.boot.web.support.ErrorPageFilter - response.sendError(statusCode, message); } -} diff --git a/dspace/config/log4j2.xml b/dspace/config/log4j2.xml index 51c04ef2dcc4..bfda6bd4900a 100644 --- a/dspace/config/log4j2.xml +++ b/dspace/config/log4j2.xml @@ -88,6 +88,13 @@ + + + + +