Class LoggingInterceptor

java.lang.Object
ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor

public class LoggingInterceptor extends Object
Server interceptor which logs each request using a defined format

The following substitution variables are supported:

${id} The resource ID associated with this request (or "" if none)
${idOrResourceName} The resource ID associated with this request, or the resource name if the request applies to a type but not an instance, or "" otherwise
${operationName} If the request is an extended operation (e.g. "$validate") this value will be the operation name, or "" otherwise
${requestId} The request ID assigned to this request (either automatically, or via the X-Request-ID header in the request)
${operationType} A code indicating the operation type for this request, e.g. "read", "history-instance", "extended-operation-instance", etc.)
${remoteAddr} The originating IP of the request
${requestHeader.XXXX} The value of the HTTP request header named XXXX. For example, a substitution variable named "${requestHeader.x-forwarded-for} will yield the value of the first header named "x-forwarded-for ", or "" if none.
${requestParameters} The HTTP request parameters (or "")
${responseEncodingNoDefault} The encoding format requested by the client via the _format parameter or the Accept header. Value will be "json" or "xml", or "" if the client did not explicitly request a format
${servletPath} The part of thre requesting URL that corresponds to the particular Servlet being called (see HttpServletRequest.getServletPath())
${requestBodyFhir} The complete body of the request if the request has a FHIR content-type (this can be quite large!). Will emit an empty string if the content type is not a FHIR content type
${requestUrl} The complete URL of the request
${requestVerb} The HTTP verb of the request
${exceptionMessage} Applies only to an error message: The message from Throwable.getMessage()
${processingTimeMillis} The number of milliseconds spen processing this request
  • Constructor Details

    • LoggingInterceptor

      Constructor for server logging interceptor
  • Method Details

    • getErrorMessageFormat

      Get the log message format to be used when logging exceptions
    • handleException

      public boolean handleException(RequestDetails theRequestDetails, ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException theException, jakarta.servlet.http.HttpServletRequest theServletRequest, jakarta.servlet.http.HttpServletResponse theServletResponse) throws jakarta.servlet.ServletException, IOException
      Throws:
      jakarta.servlet.ServletException
      IOException
    • processingCompletedNormally

      public void processingCompletedNormally(ServletRequestDetails theRequestDetails)
    • isLogExceptions

      public boolean isLogExceptions()
      Should exceptions be logged by this logger
    • setErrorMessageFormat

      public void setErrorMessageFormat(String theErrorMessageFormat)
      Set the log message format to be used when logging exceptions
    • setLogExceptions

      public void setLogExceptions(boolean theLogExceptions)
      Should exceptions be logged by this logger
    • setLogger

      public void setLogger(org.slf4j.Logger theLogger)
    • setLoggerName

      public void setLoggerName(String theLoggerName)
    • setMessageFormat

      public void setMessageFormat(String theMessageFormat)
      Sets the message format itself. See the class documentation for information on the format