クラス ExceptionLoggingFilter

java.lang.Object
org.springframework.web.filter.GenericFilterBean
org.terasoluna.gfw.web.exception.ExceptionLoggingFilter
すべての実装されたインタフェース:
jakarta.servlet.Filter, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanNameAware, org.springframework.beans.factory.DisposableBean, org.springframework.beans.factory.InitializingBean, org.springframework.context.EnvironmentAware, org.springframework.core.env.EnvironmentCapable, org.springframework.web.context.ServletContextAware

public class ExceptionLoggingFilter extends org.springframework.web.filter.GenericFilterBean
Servlet filter class for log output of exception.

This class outputs the log of exceptions which do not get handled by HandlerExceptionResolver of SpringMVC.
Must be specified in Servlet filter.

[Example of handling done in this class]

  • Exceptions that occur in View(JSP etc)
  • Exceptions that occur beyond the boundary of SpringMVC (javax.servlet.Filter etc).
  • Fatal errors that occur within the boundary of SpringMVC (classed inherited from java.lang.Error).

Example of the Settings for inject a custom ExceptionLogger


[applicationContext.xml]
define bean of custom ExceptionLogger and ExceptionLoggingFilter.
 <bean id="exceptionLogger" class="org.terasoluna.gfw.common.exception.ExceptionLogger">
   <!-- ... -->
 </bean>

 <bean id="exceptionLoggingFilter"
 class="org.terasoluna.gfw.web.exception.ExceptionLoggingFilter">
   <property name="exceptionLogger" ref="exceptionLogger" />
 </bean>
 
[web.xml]
filter-class specify the 'org.springframework.web.filter.DelegatingFilterProxy', and fiter-name specify the bean name of ExceptionLoggingFilter.
 <filter>
   <filter-name>exceptionLoggingFilter</filter-name>
   <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
 </filter>
 
  • フィールドの概要

    クラスから継承されたフィールド org.springframework.web.filter.GenericFilterBean

    logger
  • コンストラクタの概要

    コンストラクタ
    コンストラクタ
    説明
     
  • メソッドの概要

    修飾子とタイプ
    メソッド
    説明
    void
    doFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain filterChain)
    Executes next filter.
    protected ExceptionLogger
    Fetches logger object that outputs exception
    protected void
    Initializes the exception filter.
    protected void
    logIOException(IOException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
    Logs IOException.
    protected void
    logRuntimeException(RuntimeException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
    Logs RuntimeException
    protected void
    logServletException(jakarta.servlet.ServletException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
    Logs ServletException
    void
    Sets logger object for exception output

    クラスから継承されたメソッド org.springframework.web.filter.GenericFilterBean

    addRequiredProperty, afterPropertiesSet, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, setBeanName, setEnvironment, setServletContext

    クラスから継承されたメソッド java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • コンストラクタの詳細

    • ExceptionLoggingFilter

      public ExceptionLoggingFilter()
  • メソッドの詳細

    • setExceptionLogger

      public void setExceptionLogger(ExceptionLogger exceptionLogger)
      Sets logger object for exception output

      If not set, default logger object for exception output is used.

      パラメータ:
      exceptionLogger - any exception logger.
    • doFilter

      public void doFilter(jakarta.servlet.ServletRequest servletRequest, jakarta.servlet.ServletResponse servletResponse, jakarta.servlet.FilterChain filterChain) throws IOException, jakarta.servlet.ServletException
      Executes next filter. logs exception if exception is occurred.
      パラメータ:
      servletRequest - ServletRequest
      servletResponse - ServletResponse
      filterChain - FilterChain
      例外:
      IOException
      jakarta.servlet.ServletException
      関連項目:
      • javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
    • initFilterBean

      protected void initFilterBean() throws jakarta.servlet.ServletException
      Initializes the exception filter.

      If exception logger object is not set, use ExceptionLogger.

      default exception logger's name is 'org.terasoluna.gfw.web.exception.ExceptionLoggingFilter'
      (this interceptor's class name).

      オーバーライド:
      initFilterBean クラス内 org.springframework.web.filter.GenericFilterBean
      例外:
      jakarta.servlet.ServletException
      関連項目:
      • GenericFilterBean.initFilterBean()
    • logIOException

      protected void logIOException(IOException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
      Logs IOException.
      パラメータ:
      ex - Exception
      request - HTTP servlet request
      response - HTTP servlet response
    • logServletException

      protected void logServletException(jakarta.servlet.ServletException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
      Logs ServletException
      パラメータ:
      ex - Exception
      request - HTTP servlet request
      response - HTTP servlet response
    • logRuntimeException

      protected void logRuntimeException(RuntimeException ex, jakarta.servlet.ServletRequest request, jakarta.servlet.ServletResponse response)
      Logs RuntimeException
      パラメータ:
      ex - Exception
      request - HTTP servlet request
      response - HTTP servlet response
    • getExceptionLogger

      protected ExceptionLogger getExceptionLogger()
      Fetches logger object that outputs exception
      戻り値:
      logger object that outputs exception