Replace parameters and log only if console object is present
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Wed, 09 Oct 2013 16:07:19 +0200
changeset 1355ae20214a816c
parent 1350 f14e9730d4e9
child 1356 637f7fb50abd
Replace parameters and log only if console object is present
rt/emul/compact/src/main/java/java/util/logging/Logger.java
     1.1 --- a/rt/emul/compact/src/main/java/java/util/logging/Logger.java	Mon Oct 07 16:17:21 2013 +0200
     1.2 +++ b/rt/emul/compact/src/main/java/java/util/logging/Logger.java	Wed Oct 09 16:07:19 2013 +0200
     1.3 @@ -457,16 +457,23 @@
     1.4              case "WARNING": method = "warn"; break;
     1.5              default: method = "log"; break;
     1.6          }
     1.7 +        
     1.8 +        String msg = record.getMessage();
     1.9 +        final Object[] params = record.getParameters();
    1.10 +        if (params == null || params.length == 0) {
    1.11 +        } else {
    1.12 +            for (int i = 0; i < params.length; i++) {
    1.13 +                msg = msg.replace("{" + i + "}", params[i] == null ? "null" : params[i].toString());
    1.14 +            }
    1.15 +        }
    1.16  
    1.17          consoleLog(
    1.18              method, 
    1.19 -            record.getLoggerName(),
    1.20 -            record.getMessage()
    1.21 -        );
    1.22 +            record.getLoggerName(), msg);
    1.23      }
    1.24      
    1.25      @JavaScriptBody(args = { "method", "logger", "msg" }, body = 
    1.26 -        "window.console[method]('[' + logger + ']: ' + msg);"
    1.27 +        "if (console) console[method]('[' + logger + ']: ' + msg);"
    1.28      )
    1.29      private static native void consoleLog(
    1.30          String method, String logger, String msg