logging-log4j-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ralph Goers <ralph.go...@dslextreme.com>
Subject Re: Understanding ParameterizedMessage and so on
Date Sun, 22 Jul 2012 19:09:22 GMT

On Jul 22, 2012, at 5:50 AM, Gary Gregory wrote:

> Hi All:
> 
> Why does ParameterizedMessage class not implement the FormattedMessage interface? Are
we making a conceptual difference between a formatted message and a parameterized message?
> 
> The FM Javadoc says "A Message that can have a format String attached to it"; PM has
a formattedMessage and messagePattern String. A messagePatterm sounds like a "format String"
to me.

Perhaps FormattedMessage is a bad name.  Every Message implements getFormattedMessage(). 
The purpose of the FromattedMessage interface is to signify that a Message can accept additional
information to help it to determine how to format the message. In the specific cases it is
used in currently, MapMessage normally defaults to formatting the Map as {key1="value1" key2="value2"}.
If setFormat() is called with a value of "XML" then the Map is rendered as XML instead.  So
really what is being done is providing so extra formatting instructions. If you can think
of a less confusing name than Formatted Message I'd readily agree.

> 
> Would it not be simpler to have org.apache.logging.log4j.message.Message.getFormattedMessage()
as toString()? Is a toString() on each Message impl that useful for debugging that it overrides
the simplicity of using toString?

I know Joern and I had discussions around this a long time ago (he actually wrote ParameterizedMessage
before I even started on Log4j 2) but I can't recall the reasons why we decided that using
getFormattedMessage was better.


> 
> ThreadDumpMessage does not implement toString(). Is that on purpose or an omission?

IMO, technically every object should override toString() as what Java prints isn't always
useful. But it isn't required since Java provides a default implementation and it isn't required
by the MessageInterface.  Now that I think about it, this is probably exactly why Message
requires getFormattedMessage().

Ralph


---------------------------------------------------------------------
To unsubscribe, e-mail: log4j-dev-unsubscribe@logging.apache.org
For additional commands, e-mail: log4j-dev-help@logging.apache.org


Mime
View raw message