Package org.apache.logging.log4j.message
Class ReusableMessageFactory
- java.lang.Object
-
- org.apache.logging.log4j.message.ReusableMessageFactory
-
- All Implemented Interfaces:
java.io.Serializable
,MessageFactory
,MessageFactory2
public final class ReusableMessageFactory extends java.lang.Object implements MessageFactory2, java.io.Serializable
Implementation of theMessageFactory
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.- Since:
- 2.6
- See Also:
ParameterizedMessageFactory
,ReusableSimpleMessage
,ReusableObjectMessage
,ReusableParameterizedMessage
, Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static ReusableMessageFactory
INSTANCE
Instance of ReusableMessageFactory..private static long
serialVersionUID
private static java.lang.ThreadLocal<ReusableObjectMessage>
threadLocalObjectMessage
private static java.lang.ThreadLocal<ReusableParameterizedMessage>
threadLocalParameterized
private static java.lang.ThreadLocal<ReusableSimpleMessage>
threadLocalSimpleMessage
-
Constructor Summary
Constructors Constructor Description ReusableMessageFactory()
Constructs a message factory.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private static ReusableObjectMessage
getObject()
private static ReusableParameterizedMessage
getParameterized()
private static ReusableSimpleMessage
getSimple()
Message
newMessage(java.lang.CharSequence charSequence)
Creates a new message for the specified CharSequence.Message
newMessage(java.lang.Object message)
CreatesReusableObjectMessage
instances.Message
newMessage(java.lang.String message)
CreatesReusableSimpleMessage
instances.Message
newMessage(java.lang.String message, java.lang.Object p0)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object... params)
CreatesReusableParameterizedMessage
instances.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8)
Creates a new parameterized message.Message
newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9)
Creates a new parameterized message.static void
release(Message message)
InvokesClearable.clear()
when possible.
-
-
-
Field Detail
-
INSTANCE
public static final ReusableMessageFactory INSTANCE
Instance of ReusableMessageFactory..
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
threadLocalParameterized
private static java.lang.ThreadLocal<ReusableParameterizedMessage> threadLocalParameterized
-
threadLocalSimpleMessage
private static java.lang.ThreadLocal<ReusableSimpleMessage> threadLocalSimpleMessage
-
threadLocalObjectMessage
private static java.lang.ThreadLocal<ReusableObjectMessage> threadLocalObjectMessage
-
-
Method Detail
-
getParameterized
private static ReusableParameterizedMessage getParameterized()
-
getSimple
private static ReusableSimpleMessage getSimple()
-
getObject
private static ReusableObjectMessage getObject()
-
release
public static void release(Message message)
InvokesClearable.clear()
when possible. This flag is used internally to verify that a reusable message is no longer in use and can be reused.- Parameters:
message
- the message to make available again- Since:
- 2.7
-
newMessage
public Message newMessage(java.lang.CharSequence charSequence)
Description copied from interface:MessageFactory2
Creates a new message for the specified CharSequence.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
charSequence
- the (potentially mutable) CharSequence- Returns:
- a new message for the specified CharSequence
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object... params)
CreatesReusableParameterizedMessage
instances.- Specified by:
newMessage
in interfaceMessageFactory
- Parameters:
message
- The message pattern.params
- The message parameters.- Returns:
- The Message.
- See Also:
MessageFactory.newMessage(String, Object...)
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameterp5
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameterp5
- a message parameterp6
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameterp5
- a message parameterp6
- a message parameterp7
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameterp5
- a message parameterp6
- a message parameterp7
- a message parameterp8
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message, java.lang.Object p0, java.lang.Object p1, java.lang.Object p2, java.lang.Object p3, java.lang.Object p4, java.lang.Object p5, java.lang.Object p6, java.lang.Object p7, java.lang.Object p8, java.lang.Object p9)
Description copied from interface:MessageFactory2
Creates a new parameterized message.- Specified by:
newMessage
in interfaceMessageFactory2
- Parameters:
message
- a message template, the kind of message template depends on the implementation.p0
- a message parameterp1
- a message parameterp2
- a message parameterp3
- a message parameterp4
- a message parameterp5
- a message parameterp6
- a message parameterp7
- a message parameterp8
- a message parameterp9
- a message parameter- Returns:
- a new message
- See Also:
ParameterizedMessageFactory
-
newMessage
public Message newMessage(java.lang.String message)
CreatesReusableSimpleMessage
instances.- Specified by:
newMessage
in interfaceMessageFactory
- Parameters:
message
- The message String.- Returns:
- The Message.
- See Also:
MessageFactory.newMessage(String)
-
newMessage
public Message newMessage(java.lang.Object message)
CreatesReusableObjectMessage
instances.- Specified by:
newMessage
in interfaceMessageFactory
- Parameters:
message
- The message Object.- Returns:
- The Message.
- See Also:
MessageFactory.newMessage(Object)
-
-