Package org.glassfish.jersey.logging
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) class
Helper 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 AtomicLong
private static final Comparator
<Map.Entry<String, List<String>>> (package private) static final String
The entity stream property(package private) final Level
(package private) final Logger
(package private) static final String
Logging record id property(package private) final int
private static final String
private static final Set
<javax.ws.rs.core.MediaType> (package private) static final String
Prefix will be printed before requests(package private) static final String
Prefix 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 TypeMethodDescriptionvoid
aroundWriteTo
(javax.ws.rs.ext.WriterInterceptorContext writerInterceptorContext) (package private) static boolean
isReadable
(javax.ws.rs.core.MediaType mediaType) Returnstrue
if specifiedMediaType
is considered textual.(package private) void
log
(StringBuilder b) Logs aStringBuilder
parameter at required level.(package private) InputStream
logInboundEntity
(StringBuilder b, InputStream stream, Charset charset) private StringBuilder
prefixId
(StringBuilder b, long id) (package private) static boolean
printEntity
(LoggingFeature.Verbosity verbosity, javax.ws.rs.core.MediaType mediaType) Returnstrue
if entity has to be printed.(package private) void
printPrefixedHeaders
(StringBuilder b, long id, String prefix, javax.ws.rs.core.MultivaluedMap<String, String> headers) (package private) void
printRequestLine
(StringBuilder b, String note, long id, String method, URI uri) (package private) void
printResponseLine
(StringBuilder b, String note, long id, int status)
-
Field Details
-
REQUEST_PREFIX
Prefix will be printed before requests- See Also:
-
RESPONSE_PREFIX
Prefix will be printed before response- See Also:
-
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 aStringBuilder
parameter 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:
aroundWriteTo
in interfacejavax.ws.rs.ext.WriterInterceptor
- Throws:
IOException
javax.ws.rs.WebApplicationException
-
isReadable
static boolean isReadable(javax.ws.rs.core.MediaType mediaType) - Parameters:
mediaType
- the media type of the entity- Returns:
true
if specifiedMediaType
is considered textual.
-
printEntity
static boolean printEntity(LoggingFeature.Verbosity verbosity, javax.ws.rs.core.MediaType mediaType) Returnstrue
if entity has to be printed.- Parameters:
verbosity
- the configured verbosity .mediaType
- the media type of the payload.- Returns:
true
if entity has to be printed.
-