Class LoggingInterceptor
java.lang.Object
ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor
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 Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionGet the log message format to be used when logging exceptionsbooleanhandleException(RequestDetails theRequestDetails, ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException theException, javax.servlet.http.HttpServletRequest theServletRequest, javax.servlet.http.HttpServletResponse theServletResponse)booleanShould exceptions be logged by this loggervoidprocessingCompletedNormally(ServletRequestDetails theRequestDetails)voidsetErrorMessageFormat(String theErrorMessageFormat)Set the log message format to be used when logging exceptionsvoidsetLogExceptions(boolean theLogExceptions)Should exceptions be logged by this loggervoidsetLogger(org.slf4j.Logger theLogger)voidsetLoggerName(String theLoggerName)voidsetMessageFormat(String theMessageFormat)Sets the message format itself.
-
Constructor Details
-
LoggingInterceptor
public 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, javax.servlet.http.HttpServletRequest theServletRequest, javax.servlet.http.HttpServletResponse theServletResponse) throws javax.servlet.ServletException, IOException- Throws:
javax.servlet.ServletExceptionIOException
-
processingCompletedNormally
-
isLogExceptions
Should exceptions be logged by this logger -
setErrorMessageFormat
Set the log message format to be used when logging exceptions -
setLogExceptions
Should exceptions be logged by this logger -
setLogger
-
setLoggerName
-
setMessageFormat
Sets the message format itself. See theclass documentationfor information on the format
-