Class AbstractAccessLogValve.DateFormatCache
- Enclosing class:
AbstractAccessLogValve
Cache structure for formatted timestamps based on seconds.
The cache consists of entries for a consecutive range of seconds. The length of the range is configurable. It is implemented based on a cyclic buffer. New entries shift the range.
There is one cache for the CLF format (the access log standard format) and a HashMap of caches for additional formats used by SimpleDateFormat.
Although the cache supports specifying a locale when retrieving a formatted timestamp, each format will always
use the locale given when the format was first used. New locales can only be used for new formats. The CLF format
will always be formatted using the locale en_US.
The cache is not threadsafe. It can be used without synchronization via thread local instances, or with synchronization as a global cache.
The cache can be created with a parent cache to build a cache hierarchy. Access to the parent cache is threadsafe.
This class uses a small thread local first level cache and a bigger synchronized global second level cache.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected classCache for formatted timestamps. -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final AbstractAccessLogValve.DateFormatCache.CacheThe cache for CLF format. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedDateFormatCache(int size, Locale loc, AbstractAccessLogValve.DateFormatCache parentFC) Creates a new date format cache. -
Method Summary
-
Field Details
-
cLFCache
The cache for CLF format.
-
-
Constructor Details
-
DateFormatCache
Creates a new date format cache.- Parameters:
size- The cache sizeloc- The default localeparentFC- The parent cache
-
-
Method Details
-
getFormat
Gets the formatted timestamp in CLF format.- Parameters:
time- The time in milliseconds- Returns:
- The formatted timestamp
-
getFormat
-