Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
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 (309)
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/message/ReusableMessageFactory.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.message; import java.io.Serializable; import org.apache.logging.log4j.util.PerformanceSensitive; /** * Implementation of the {@link MessageFactory} interface that avoids allocating temporary objects where possible. * Message instances are cached in a ThreadLocal and reused when a new message is requested within the same thread. * @see ParameterizedMessageFactory * @see ReusableSimpleMessage * @see ReusableObjectMessage * @see ReusableParameterizedMessage * @since 2.6 */ @PerformanceSensitive("allocation") public final class ReusableMessageFactory implements MessageFactory2, Serializable { /** * Instance of ReusableMessageFactory.. */ public static final ReusableMessageFactory INSTANCE = new ReusableMessageFactory(); private static final long serialVersionUID = -8970940216592525651L; private static ThreadLocal<ReusableParameterizedMessage> threadLocalParameterized = new ThreadLocal<>(); private static ThreadLocal<ReusableSimpleMessage> threadLocalSimpleMessage = new ThreadLocal<>(); private static ThreadLocal<ReusableObjectMessage> threadLocalObjectMessage = new ThreadLocal<>(); /** * Constructs a message factory. */ public ReusableMessageFactory() { } private static ReusableParameterizedMessage getParameterized() { ReusableParameterizedMessage result = threadLocalParameterized.get(); if (result == null) { result = new ReusableParameterizedMessage(); threadLocalParameterized.set(result); } return result.reserved ? new ReusableParameterizedMessage().reserve() : result.reserve(); } private static ReusableSimpleMessage getSimple() { ReusableSimpleMessage result = threadLocalSimpleMessage.get(); if (result == null) { result = new ReusableSimpleMessage(); threadLocalSimpleMessage.set(result); } return result; } private static ReusableObjectMessage getObject() { ReusableObjectMessage result = threadLocalObjectMessage.get(); if (result == null) { result = new ReusableObjectMessage(); threadLocalObjectMessage.set(result); } return result; } /** * Invokes {@link Clearable#clear()} when possible. * This flag is used internally to verify that a reusable message is no longer in use and * can be reused. * @param message the message to make available again * @since 2.7 */ public static void release(final Message message) { // LOG4J2-1583 if (message instanceof Clearable) { ((Clearable) message).clear(); } } @Override public Message newMessage(final CharSequence charSequence) { final ReusableSimpleMessage result = getSimple(); result.set(charSequence); return result; } /** * Creates {@link ReusableParameterizedMessage} instances. * * @param message The message pattern. * @param params The message parameters. * @return The Message. * * @see MessageFactory#newMessage(String, Object...) */ @Override public Message newMessage(final String message, final Object... params) { return getParameterized().set(message, params); } @Override public Message newMessage(final String message, final Object p0) { return getParameterized().set(message, p0); } @Override public Message newMessage(final String message, final Object p0, final Object p1) { return getParameterized().set(message, p0, p1); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2) { return getParameterized().set(message, p0, p1, p2); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3) { return getParameterized().set(message, p0, p1, p2, p3); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4) { return getParameterized().set(message, p0, p1, p2, p3, p4); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5) { return getParameterized().set(message, p0, p1, p2, p3, p4, p5); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, final Object p6) { return getParameterized().set(message, p0, p1, p2, p3, p4, p5, p6); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, final Object p6, final Object p7) { return getParameterized().set(message, p0, p1, p2, p3, p4, p5, p6, p7); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8) { return getParameterized().set(message, p0, p1, p2, p3, p4, p5, p6, p7, p8); } @Override public Message newMessage(final String message, final Object p0, final Object p1, final Object p2, final Object p3, final Object p4, final Object p5, final Object p6, final Object p7, final Object p8, final Object p9) { return getParameterized().set(message, p0, p1, p2, p3, p4, p5, p6, p7, p8, p9); } /** * Creates {@link ReusableSimpleMessage} instances. * * @param message The message String. * @return The Message. * * @see MessageFactory#newMessage(String) */ @Override public Message newMessage(final String message) { final ReusableSimpleMessage result = getSimple(); result.set(message); return result; } /** * Creates {@link ReusableObjectMessage} instances. * * @param message The message Object. * @return The Message. * * @see MessageFactory#newMessage(Object) */ @Override public Message newMessage(final Object message) { final ReusableObjectMessage result = getObject(); result.set(message); return result; } }
⏎ org/apache/logging/log4j/message/ReusableMessageFactory.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, 37791👍, 0💬
Popular Posts:
JDK 11 jdk.crypto.mscapi.jmod is the JMOD file for JDK 11 Crypto MSCAPI module. JDK 11 Crypto MSCAPI...
A stream buffer is a stream-based representation of an XML infoset in Java. Stream buffers are desig...
Rhino JavaScript Java Library is an open-source implementation of JavaScript written entirely in Jav...
Jackson is "the Java JSON library" or "the best JSON parser for Java". Or simply as "JSON for Java"....
Where to find answers to frequently asked questions on Downloading and Installing Connector/J - JDBC...