diff --git a/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java b/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java
new file mode 100644
index 00000000..14c753a4
--- /dev/null
+++ b/libresonic-main/src/main/java/org/libresonic/player/spring/LoggingExceptionResolver.java
@@ -0,0 +1,26 @@
+package org.libresonic.player.spring;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.libresonic.player.Logger;
+import org.springframework.core.Ordered;
+import org.springframework.web.servlet.HandlerExceptionResolver;
+import org.springframework.web.servlet.ModelAndView;
+
+public class LoggingExceptionResolver implements HandlerExceptionResolver, Ordered {
+
+ private static final Logger logger = Logger.getLogger(LoggingExceptionResolver.class);
+
+ @Override
+ public ModelAndView resolveException(
+ HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e
+ ) {
+ logger.error("Exception occurred", e);
+ return null;
+ }
+
+ @Override
+ public int getOrder() {
+ return Integer.MIN_VALUE;
+ }
+}
diff --git a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
index 3c44ef8b..d4295b1d 100644
--- a/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
+++ b/libresonic-main/src/main/webapp/WEB-INF/libresonic-servlet.xml
@@ -398,4 +398,5 @@
+