SLF4J / SLF4J-479 [Open]
JUL-SLF4J Bridge - sourceMethod not logged

==============================

Here's what changed in this issue in the last few minutes.

There is 1 comment.

View or comment on issue using this link
https://jira.qos.ch/browse/SLF4J-479

==============================
 1 comment
------------------------------

Alex Antonov on 27/Jul/21 8:04 PM
There are a number of other implementations/wrappers, like SSLLogger, which 
don't pass the "format", and purely concatenate the Message string with the 
parameter strings.

Would be great to have an enhancement to the SLF4JBridgeHandler to check if 
parameters are present (not null and >0) and no provided ResourceBundle from 
the LogRecord, then just append the parameter.toString() values to the message 
instead.

 
{code:java}
private String getMessageI18N(LogRecord record) {
    String message = record.getMessage();

    if (message == null) {
        return null;
    }

    ResourceBundle bundle = record.getResourceBundle();
    if (bundle != null) {
        try {
            message = bundle.getString(message);
        } catch (MissingResourceException e) {
        }
    }
    Object[] params = record.getParameters();
    // avoid formatting when there are no or 0 parameters. see also
    // http://jira.qos.ch/browse/SLF4J-203
    if (params != null && params.length > 0) {
        if 
        try {
            MessageFormat format = new MessageFormat(message);
            if (format.getFormats().length > 0) {
                message = MessageFormat.format(message, params);
            } else {
                StringJoiner joiner = new StringJoiner(", "); \\ This could be 
replaced to be a NEW LINE instead of a comma-space.
                for (int i = 0; i < params.length; i++) {
                   joiner.add(params[i].toString();
                }
                message = message + ": " + joiner.toString();
            }
        } catch (IllegalArgumentException e) {
            // default to the same behavior as in 
java.util.logging.Formatter.formatMessage(LogRecord)
            // see also http://jira.qos.ch/browse/SLF4J-337
            return message;
        }
    }
    return message;
} {code}


==============================
 This message was sent by Atlassian Jira (v8.8.0#808000-sha1:e2c7e59)

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

Reply via email to