Class LoggingFeature

java.lang.Object
org.glassfish.jersey.logging.LoggingFeature
All Implemented Interfaces:
javax.ws.rs.core.Feature

public class LoggingFeature extends Object implements javax.ws.rs.core.Feature
This feature enables logging request and/or response on client-side and/or server-side depending on the context's RuntimeType.

The feature may be register programmatically like other features by calling any of Configurable register(...) method, i.e. Configurable.register(Class) or by setting any of the configuration property listed bellow.

Common configurable properties applies for both client and server and are following:

If any of the configuration value is not set, following default values are applied:

Server configurable properties:

Client configurable properties:
Since:
2.23
  • Field Details

    • DEFAULT_LOGGER_NAME

      public static final String DEFAULT_LOGGER_NAME
      Default logger name to log request and response messages.
    • DEFAULT_LOGGER_LEVEL

      public static final String DEFAULT_LOGGER_LEVEL
      Default logger level which will be used for logging request and response messages.
    • DEFAULT_MAX_ENTITY_SIZE

      public static final int DEFAULT_MAX_ENTITY_SIZE
      Default maximum entity bytes to be logged.
      See Also:
    • DEFAULT_VERBOSITY

      public static final LoggingFeature.Verbosity DEFAULT_VERBOSITY
      Default verbosity for entity logging. See LoggingFeature.Verbosity.
    • LOGGER_NAME_POSTFIX

      private static final String LOGGER_NAME_POSTFIX
      See Also:
    • LOGGER_LEVEL_POSTFIX

      private static final String LOGGER_LEVEL_POSTFIX
      See Also:
    • VERBOSITY_POSTFIX

      private static final String VERBOSITY_POSTFIX
      See Also:
    • MAX_ENTITY_POSTFIX

      private static final String MAX_ENTITY_POSTFIX
      See Also:
    • LOGGING_FEATURE_COMMON_PREFIX

      private static final String LOGGING_FEATURE_COMMON_PREFIX
      See Also:
    • LOGGING_FEATURE_LOGGER_NAME

      public static final String LOGGING_FEATURE_LOGGER_NAME
      Common logger name property.
      See Also:
    • LOGGING_FEATURE_LOGGER_LEVEL

      public static final String LOGGING_FEATURE_LOGGER_LEVEL
      Common logger level property.
      See Also:
    • LOGGING_FEATURE_VERBOSITY

      public static final String LOGGING_FEATURE_VERBOSITY
      Common property for configuring a verbosity of entity.
      See Also:
    • LOGGING_FEATURE_MAX_ENTITY_SIZE

      public static final String LOGGING_FEATURE_MAX_ENTITY_SIZE
      Common property for configuring a maximum number of bytes of entity to be logged.
      See Also:
    • LOGGING_FEATURE_SERVER_PREFIX

      private static final String LOGGING_FEATURE_SERVER_PREFIX
      See Also:
    • LOGGING_FEATURE_LOGGER_NAME_SERVER

      public static final String LOGGING_FEATURE_LOGGER_NAME_SERVER
      Server logger name property.
      See Also:
    • LOGGING_FEATURE_LOGGER_LEVEL_SERVER

      public static final String LOGGING_FEATURE_LOGGER_LEVEL_SERVER
      Server logger level property.
      See Also:
    • LOGGING_FEATURE_VERBOSITY_SERVER

      public static final String LOGGING_FEATURE_VERBOSITY_SERVER
      Server property for configuring a verbosity of entity.
      See Also:
    • LOGGING_FEATURE_MAX_ENTITY_SIZE_SERVER

      public static final String LOGGING_FEATURE_MAX_ENTITY_SIZE_SERVER
      Server property for configuring a maximum number of bytes of entity to be logged.
      See Also:
    • LOGGING_FEATURE_CLIENT_PREFIX

      private static final String LOGGING_FEATURE_CLIENT_PREFIX
      See Also:
    • LOGGING_FEATURE_LOGGER_NAME_CLIENT

      public static final String LOGGING_FEATURE_LOGGER_NAME_CLIENT
      Client logger name property.
      See Also:
    • LOGGING_FEATURE_LOGGER_LEVEL_CLIENT

      public static final String LOGGING_FEATURE_LOGGER_LEVEL_CLIENT
      Client logger level property.
      See Also:
    • LOGGING_FEATURE_VERBOSITY_CLIENT

      public static final String LOGGING_FEATURE_VERBOSITY_CLIENT
      Client property for configuring a verbosity of entity.
      See Also:
    • LOGGING_FEATURE_MAX_ENTITY_SIZE_CLIENT

      public static final String LOGGING_FEATURE_MAX_ENTITY_SIZE_CLIENT
      Client property for configuring a maximum number of bytes of entity to be logged.
      See Also:
    • filterLogger

      private final Logger filterLogger
    • verbosity

      private final LoggingFeature.Verbosity verbosity
    • maxEntitySize

      private final Integer maxEntitySize
    • level

      private final Level level
  • Constructor Details

    • LoggingFeature

      public LoggingFeature()
      Creates the feature with default values.
    • LoggingFeature

      public LoggingFeature(Logger logger)
      Creates the feature with custom logger.
      Parameters:
      logger - the logger to log requests and responses.
    • LoggingFeature

      public LoggingFeature(Logger logger, LoggingFeature.Verbosity verbosity)
      Creates the feature with custom logger and verbosity.
      Parameters:
      logger - the logger to log requests and responses.
      verbosity - verbosity of logged messages. See LoggingFeature.Verbosity.
    • LoggingFeature

      public LoggingFeature(Logger logger, Integer maxEntitySize)
      Creates the feature with custom logger and maximum number of bytes of entity to log.
      Parameters:
      logger - the logger to log requests and responses.
      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.
    • LoggingFeature

      public LoggingFeature(Logger logger, Level level, LoggingFeature.Verbosity verbosity, Integer maxEntitySize)
      Creates the feature with custom logger, it's level, message verbosity and maximum number of bytes of entity to log.
      Parameters:
      logger - the logger to log requests and responses.
      level - level on which the messages will be logged.
      verbosity - verbosity of logged messages. See LoggingFeature.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

    • configure

      public boolean configure(javax.ws.rs.core.FeatureContext context)
      Specified by:
      configure in interface javax.ws.rs.core.Feature
    • createLoggingFilter

      private LoggingInterceptor createLoggingFilter(javax.ws.rs.core.FeatureContext context, javax.ws.rs.RuntimeType runtimeType)