org.apache.catalina.valves

## Class AbstractAccessLogValve.DateFormatCache

- java.lang.Object
- - org.apache.catalina.valves.AbstractAccessLogValve.DateFormatCache

- Enclosing class:
    AbstractAccessLogValve

      protected static class AbstractAccessLogValve.DateFormatCache
      extends Object

  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 Classes
    Modifier and Type | Class and Description
    --- | ---
    `protected class` | `AbstractAccessLogValve.DateFormatCache.Cache`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected AbstractAccessLogValve.DateFormatCache.Cache` | `cLFCache`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor and Description
    --- | ---
    `protected` | `AbstractAccessLogValve.DateFormatCache(int size, Locale loc, AbstractAccessLogValve.DateFormatCache parent)`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getFormat(long time)`
    `String` | `getFormat(String format, Locale loc, long time)`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### cLFCache

          protected final AbstractAccessLogValve.DateFormatCache.Cache cLFCache

  - ### Constructor Detail

    - #### AbstractAccessLogValve.DateFormatCache

          protected AbstractAccessLogValve.DateFormatCache(int size,
                                                Locale loc,
                                                AbstractAccessLogValve.DateFormatCache parent)

  - ### Method Detail

    - #### getFormat

          public String getFormat(long time)

    - #### getFormat

          public String getFormat(String format,
                         Locale loc,
                         long time)

Copyright © 2000-2021 Apache Software Foundation. All Rights Reserved.