Potentially useful API update to look at here. Some sort of Logger that
throws an exception with the log message instead?

---------- Forwarded message ---------
From: Norbert Kiesel <nkie...@metricstream.com>
Date: Wed, 6 May 2020 at 12:59
Subject: [slf4j-user] Combined logging and throwing question
To: User list for the slf4j project <slf4j-u...@qos.ch>


Hi,

we have quite a few places in our code where we do:

    logger.error("Param {} must be in [{}-{}]", name, low, high);
    throw new ValidationException("Param " + name + " must be in [" + low +
"-" + high + "]");

This is obviously ugly.  Other options would be to use

    String msg = String.format("Param %s must be in [%s-%s]", name, low,
high);
    logger.error(msg);
    throw new ValidationException(msg);

or

    String msg = MessageFormatter.format("Param {} must be in [{}-{}]", new
Object[] {name, low, high}).getMessage();
    logger.error(msg);
    throw new ValidationException(msg);

Both are not ideal.  Can't we have a logger.format method which returns a
FormattingTuple w/o the explicit array creation
and allow logger.error etc. to be called with a FormattingTuple?  Then I
could write

    FormattingTuple entry = logger.format("Param {} must be in [{}-{}]",
name, low, high);
    logger.error(entry);
    throw new ValidationException(entry.getMessage());

For my own exception classes I could then even offer a constructor that
takes a FormattingTuple and internally use the
message and the throwable (if it is not null).

</nk>

---


Norbert Kiesel
Systems Architect, Engineering
E: nkie...@metricstream.com <sonia.sha...@metricstream.com>
W: www.metricstream.com

_______________________________________________
slf4j-user mailing list
slf4j-u...@qos.ch
http://mailman.qos.ch/mailman/listinfo/slf4j-user


-- 
Matt Sicker <boa...@gmail.com>

Reply via email to