Class ThrowableConsumingMessageFactory

  • All Implemented Interfaces:
    MessageFactory, MessageFactory2

    public final class ThrowableConsumingMessageFactory
    extends java.lang.Object
    implements MessageFactory2
    A message factory that eagerly removes a trailing throwable argument.

    This factory implements the algorithm used by Logback 1.1.x or later to determine Message.getThrowable(): if the last argument is a Throwable and there are less arguments than the number of placeholders incremented by one, the last argument will be used as Message.getThrowable() and will not appear in the parameterized message.

    The usual Log4j semantic only looks for throwables once all the placeholders have been filled.

    Since:
    2.24.0
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      Message newMessage​(java.lang.CharSequence charSequence)
      Creates a new message for the specified CharSequence.
      Message newMessage​(java.lang.Object message)
      Creates a new message based on an Object.
      Message newMessage​(java.lang.String message)
      Creates a new message based on a String.
      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)
      Creates a new parameterized message.
      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.
      private Message newParameterizedMessage​(java.lang.Object throwable, java.lang.String pattern, java.lang.Object... args)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • ThrowableConsumingMessageFactory

        public ThrowableConsumingMessageFactory()
    • Method Detail

      • newParameterizedMessage

        private Message newParameterizedMessage​(java.lang.Object throwable,
                                                java.lang.String pattern,
                                                java.lang.Object... args)
      • newMessage

        public Message newMessage​(java.lang.Object message)
        Description copied from interface: MessageFactory
        Creates a new message based on an Object.
        Specified by:
        newMessage in interface MessageFactory
        Parameters:
        message - a message object
        Returns:
        a new message
      • newMessage

        public Message newMessage​(java.lang.String message)
        Description copied from interface: MessageFactory
        Creates a new message based on a String.
        Specified by:
        newMessage in interface MessageFactory
        Parameters:
        message - a message String
        Returns:
        a new message
      • 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 interface MessageFactory2
        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 p0)
        Description copied from interface: MessageFactory2
        Creates a new parameterized message.
        Specified by:
        newMessage in interface MessageFactory2
        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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - a message parameter
        p5 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - a message parameter
        p5 - a message parameter
        p6 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - a message parameter
        p5 - a message parameter
        p6 - a message parameter
        p7 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - a message parameter
        p5 - a message parameter
        p6 - a message parameter
        p7 - a message parameter
        p8 - 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 interface MessageFactory2
        Parameters:
        message - a message template, the kind of message template depends on the implementation.
        p0 - a message parameter
        p1 - a message parameter
        p2 - a message parameter
        p3 - a message parameter
        p4 - a message parameter
        p5 - a message parameter
        p6 - a message parameter
        p7 - a message parameter
        p8 - a message parameter
        p9 - a message parameter
        Returns:
        a new message
        See Also:
        ParameterizedMessageFactory