Class ThreadContextMapFactory


  • public final class ThreadContextMapFactory
    extends java.lang.Object
    Creates the ThreadContextMap instance used by the ThreadContext.

    If Log4j can use ThreadLocals, a garbage-free StringMap-based context map can be installed by setting system property log4j2.garbagefree.threadContextMap to true.

    Furthermore, any custom ThreadContextMap can be installed by setting system property log4j2.threadContextMap to the fully qualified class name of the class implementing the ThreadContextMap interface. (Also implement the ReadOnlyThreadContextMap interface if your custom ThreadContextMap implementation should be accessible to applications via the ThreadContext.getThreadContextMap() method.)

    Instead of system properties, the above can also be specified in a properties file named log4j2.component.properties in the classpath.

    Since:
    2.7
    See Also:
    ThreadContextMap, ReadOnlyThreadContextMap, ThreadContext
    • Field Detail

      • LOGGER

        private static final Logger LOGGER
      • THREAD_CONTEXT_KEY

        private static final java.lang.String THREAD_CONTEXT_KEY
        See Also:
        Constant Field Values
      • GC_FREE_THREAD_CONTEXT_KEY

        private static final java.lang.String GC_FREE_THREAD_CONTEXT_KEY
        See Also:
        Constant Field Values
      • GcFreeThreadContextKey

        private static boolean GcFreeThreadContextKey
      • ThreadContextMapName

        private static java.lang.String ThreadContextMapName
    • Constructor Detail

      • ThreadContextMapFactory

        private ThreadContextMapFactory()
    • Method Detail

      • init

        public static void init()
        Initializes static variables based on system properties. Normally called when this class is initialized by the VM and when Log4j is reconfigured.
      • initPrivate

        private static void initPrivate()
        Initializes static variables based on system properties. Normally called when this class is initialized by the VM and when Log4j is reconfigured.
      • createThreadContextMap

        public static ThreadContextMap createThreadContextMap()
      • createDefaultThreadContextMap

        private static ThreadContextMap createDefaultThreadContextMap()