[
https://issues.apache.org/jira/browse/LOG4J2-1676?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15647072#comment-15647072
]
Joern Huxhorn commented on LOG4J2-1676:
---------------------------------------
Because {{getThrowable()}} is part of the {{Message}} interface.
One can implement custom messages like this:
{code:java}
public class FooMessage
implements Message
{
@Override
public String getFormattedMessage() {
return "foo message";
}
@Override
public String getFormat() {
return "foo message format";
}
@Override
public Object[] getParameters() {
return new Object[]{"param1", "param2"};
}
@Override
public Throwable getThrowable() {
return new RuntimeException();
}
}
{code}
It is very surprising that this message will create an event without a
{{Throwable}}. At least Remko and I didn't have an immediate explanation.
Similarly, it shouldn't make a difference whether a
{{ParameterizedMessageFactory}} is used internally in via
{code:java}
protected void logMessage(final String fqcn, final Level level, final Marker
marker, final String message,
final Object... params) {
final Message msg = messageFactory.newMessage(message, params);
logMessageSafely(fqcn, level, marker, msg, msg.getThrowable());
}
{code}
or manually via
{code:java}
logger.debug(new ParameterizedMessage(messagePattern, arguments));
{code}
> Use Message.getThrowable() in log(Message) methods
> --------------------------------------------------
>
> Key: LOG4J2-1676
> URL: https://issues.apache.org/jira/browse/LOG4J2-1676
> Project: Log4j 2
> Issue Type: Bug
> Affects Versions: 2.5, 2.6, 2.7
> Reporter: Joern Huxhorn
>
> All {{log(Message)}} methods should use {{Message.getThrowable()}}, e.g.
> {code:java}
> public void debug(final Message msg) {
> logIfEnabled(FQCN, Level.DEBUG, null, msg, msg != null ?
> msg.getThrowable() : null);
> }
> {code}
> instead of the current
> {code:java}
> public void debug(final Message msg) {
> logIfEnabled(FQCN, Level.DEBUG, null, msg, null);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]