[slf4j-dev] [JIRA] Updates for SLF4J-479: JUL-SLF4J Bridge - sourceMethod not logged

QOS.CH (JIRA) noreply-jira at qos.ch
Tue Jul 27 20:18:00 CEST 2021


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)



More information about the slf4j-dev mailing list