Class LoggingInterceptor
java.lang.Object
org.glassfish.jersey.logging.LoggingInterceptor
- All Implemented Interfaces:
javax.ws.rs.ext.WriterInterceptor
- Direct Known Subclasses:
ClientLoggingFilter, ServerLoggingFilter
An interceptor that logs an entity if configured so and provides a common logic for
ClientLoggingFilter
and ServerLoggingFilter.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) classHelper class used to log an entity to the output stream up to the specified maximum number of bytes. -
Field Summary
FieldsModifier and TypeFieldDescription(package private) final AtomicLongprivate static final Comparator<Map.Entry<String, List<String>>> (package private) static final StringThe entity stream property(package private) final Level(package private) final Logger(package private) static final StringLogging record id property(package private) final intprivate static final Stringprivate static final Set<javax.ws.rs.core.MediaType> (package private) static final StringPrefix will be printed before requests(package private) static final StringPrefix will be printed before responseprivate static final javax.ws.rs.core.MediaType(package private) final LoggingFeature.Verbosity -
Constructor Summary
ConstructorsConstructorDescriptionLoggingInterceptor(Logger logger, Level level, LoggingFeature.Verbosity verbosity, int maxEntitySize) Creates a logging filter with custom logger and entity logging turned on, but potentially limiting the size of entity to be buffered and logged. -
Method Summary
Modifier and TypeMethodDescriptionvoidaroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext writerInterceptorContext) (package private) static booleanisReadable(javax.ws.rs.core.MediaType mediaType) Returnstrueif specifiedMediaTypeis considered textual.(package private) voidlog(StringBuilder b) Logs aStringBuilderparameter at required level.(package private) InputStreamlogInboundEntity(StringBuilder b, InputStream stream, Charset charset) private StringBuilderprefixId(StringBuilder b, long id) (package private) static booleanprintEntity(LoggingFeature.Verbosity verbosity, javax.ws.rs.core.MediaType mediaType) Returnstrueif entity has to be printed.(package private) voidprintPrefixedHeaders(StringBuilder b, long id, String prefix, javax.ws.rs.core.MultivaluedMap<String, String> headers) (package private) voidprintRequestLine(StringBuilder b, String note, long id, String method, URI uri) (package private) voidprintResponseLine(StringBuilder b, String note, long id, int status)
-
Field Details
-
REQUEST_PREFIX
-
RESPONSE_PREFIX
-
ENTITY_LOGGER_PROPERTY
The entity stream property -
LOGGING_ID_PROPERTY
Logging record id property -
NOTIFICATION_PREFIX
- See Also:
-
TEXT_MEDIA_TYPE
private static final javax.ws.rs.core.MediaType TEXT_MEDIA_TYPE -
READABLE_APP_MEDIA_TYPES
-
COMPARATOR
-
logger
-
level
-
_id
-
verbosity
-
maxEntitySize
final int maxEntitySize
-
-
Constructor Details
-
LoggingInterceptor
LoggingInterceptor(Logger logger, Level level, LoggingFeature.Verbosity verbosity, int maxEntitySize) Creates a logging filter with custom logger and entity logging turned on, but potentially limiting the size of entity to be buffered and logged.- Parameters:
logger- the logger to log messages to.level- level at which the messages will be logged.verbosity- verbosity of the logged messages. SeeLoggingFeature.Verbosity.maxEntitySize- maximum number of entity bytes to be logged (and buffered) - if the entity is larger, logging filter will print (and buffer in memory) only the specified number of bytes and print "...more..." string at the end. Negative values are interpreted as zero.
-
-
Method Details
-
log
Logs aStringBuilderparameter at required level.- Parameters:
b- message to log
-
prefixId
-
printRequestLine
-
printResponseLine
-
printPrefixedHeaders
void printPrefixedHeaders(StringBuilder b, long id, String prefix, javax.ws.rs.core.MultivaluedMap<String, String> headers) -
getSortedHeaders
-
logInboundEntity
InputStream logInboundEntity(StringBuilder b, InputStream stream, Charset charset) throws IOException - Throws:
IOException
-
aroundWriteTo
public void aroundWriteTo(javax.ws.rs.ext.WriterInterceptorContext writerInterceptorContext) throws IOException, javax.ws.rs.WebApplicationException - Specified by:
aroundWriteToin interfacejavax.ws.rs.ext.WriterInterceptor- Throws:
IOExceptionjavax.ws.rs.WebApplicationException
-
isReadable
static boolean isReadable(javax.ws.rs.core.MediaType mediaType) - Parameters:
mediaType- the media type of the entity- Returns:
trueif specifiedMediaTypeis considered textual.
-
printEntity
static boolean printEntity(LoggingFeature.Verbosity verbosity, javax.ws.rs.core.MediaType mediaType) Returnstrueif entity has to be printed.- Parameters:
verbosity- the configured verbosity .mediaType- the media type of the payload.- Returns:
trueif entity has to be printed.
-