Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (102)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (322)
Collections:
Other Resources:
Source Code for Apache Log4j API
Apache Log4j API
provides the interface that applications should code to and provides the adapter
components required for implementers to create a logging implementation.
Apache Log4j API is a required module to use Apache Log4j.
Bytecode (Java 8) for Apache Log4j API is provided in a separate JAR file like log4j-api-2.14.1.jar.
Source Code files for Apache Log4j API are provided in both binary packge like apache-log4j-2.14.1-bin.zip and source package like apache-log4j-2.14.1-src.zip. You can download them at Apache Log4j Website.
You can also browse Source Code files for Apache Log4j API 2.14.1 below.
✍: FYIcenter.com
⏎ org/apache/logging/log4j/spi/ThreadContextMapFactory.java
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache license, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the license for the specific language governing permissions and * limitations under the license. */ package org.apache.logging.log4j.spi; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.ThreadContext; import org.apache.logging.log4j.status.StatusLogger; import org.apache.logging.log4j.util.Constants; import org.apache.logging.log4j.util.PropertiesUtil; import org.apache.logging.log4j.util.ProviderUtil; /** * Creates the ThreadContextMap instance used by the ThreadContext. * <p> * If {@link Constants#ENABLE_THREADLOCALS Log4j can use ThreadLocals}, a garbage-free StringMap-based context map can * be installed by setting system property {@code log4j2.garbagefree.threadContextMap} to {@code true}. * </p><p> * Furthermore, any custom {@code ThreadContextMap} can be installed by setting system property * {@code log4j2.threadContextMap} to the fully qualified class name of the class implementing the * {@code ThreadContextMap} interface. (Also implement the {@code ReadOnlyThreadContextMap} interface if your custom * {@code ThreadContextMap} implementation should be accessible to applications via the * {@link ThreadContext#getThreadContextMap()} method.) * </p><p> * Instead of system properties, the above can also be specified in a properties file named * {@code log4j2.component.properties} in the classpath. * </p> * * @see ThreadContextMap * @see ReadOnlyThreadContextMap * @see org.apache.logging.log4j.ThreadContext * @since 2.7 */ public final class ThreadContextMapFactory { private static final Logger LOGGER = StatusLogger.getLogger(); private static final String THREAD_CONTEXT_KEY = "log4j2.threadContextMap"; private static final String GC_FREE_THREAD_CONTEXT_KEY = "log4j2.garbagefree.threadContextMap"; private static boolean GcFreeThreadContextKey; private static String ThreadContextMapName; static { initPrivate(); } /** * Initializes static variables based on system properties. Normally called when this class is initialized by the VM * and when Log4j is reconfigured. */ public static void init() { CopyOnWriteSortedArrayThreadContextMap.init(); GarbageFreeSortedArrayThreadContextMap.init(); DefaultThreadContextMap.init(); initPrivate(); } /** * Initializes static variables based on system properties. Normally called when this class is initialized by the VM * and when Log4j is reconfigured. */ private static void initPrivate() { final PropertiesUtil properties = PropertiesUtil.getProperties(); ThreadContextMapName = properties.getStringProperty(THREAD_CONTEXT_KEY); GcFreeThreadContextKey = properties.getBooleanProperty(GC_FREE_THREAD_CONTEXT_KEY); } private ThreadContextMapFactory() { } public static ThreadContextMap createThreadContextMap() { final ClassLoader cl = ProviderUtil.findClassLoader(); ThreadContextMap result = null; if (ThreadContextMapName != null) { try { final Class<?> clazz = cl.loadClass(ThreadContextMapName); if (ThreadContextMap.class.isAssignableFrom(clazz)) { result = (ThreadContextMap) clazz.newInstance(); } } catch (final ClassNotFoundException cnfe) { LOGGER.error("Unable to locate configured ThreadContextMap {}", ThreadContextMapName); } catch (final Exception ex) { LOGGER.error("Unable to create configured ThreadContextMap {}", ThreadContextMapName, ex); } } if (result == null && ProviderUtil.hasProviders() && LogManager.getFactory() != null) { //LOG4J2-1658 final String factoryClassName = LogManager.getFactory().getClass().getName(); for (final Provider provider : ProviderUtil.getProviders()) { if (factoryClassName.equals(provider.getClassName())) { final Class<? extends ThreadContextMap> clazz = provider.loadThreadContextMap(); if (clazz != null) { try { result = clazz.newInstance(); break; } catch (final Exception e) { LOGGER.error("Unable to locate or load configured ThreadContextMap {}", provider.getThreadContextMap(), e); result = createDefaultThreadContextMap(); } } } } } if (result == null) { result = createDefaultThreadContextMap(); } return result; } private static ThreadContextMap createDefaultThreadContextMap() { if (Constants.ENABLE_THREADLOCALS) { if (GcFreeThreadContextKey) { return new GarbageFreeSortedArrayThreadContextMap(); } return new CopyOnWriteSortedArrayThreadContextMap(); } return new DefaultThreadContextMap(true); } }
⏎ org/apache/logging/log4j/spi/ThreadContextMapFactory.java
Or download all of them as a single archive file:
File name: log4j-api-2.14.1-sources.jar File size: 264773 bytes Release date: 2021-03-06 Download
⇒ Source Code for Apache Log4j Core Implementation
⇐ Downloading Apache Log4j Binary Package
2015-11-17, ≈40🔥, 0💬
Popular Posts:
What Is ojdbc14.jar for Oracle 10g R2? ojdbc14.jar for Oracle 10g R2 is the JAR files of ojdbc.jar, ...
JDK 11 jdk.internal.vm.compiler .jmodis the JMOD file for JDK 11 Internal VM Compiler module. JDK 11...
JDK 11 jdk.jconsole.jmod is the JMOD file for JDK 11 JConsole tool, which can be invoked by the "jco...
The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible...
Where to find answers to frequently asked questions on Downloading and Using JDK (Java Development K...