I writed a javascript logger to wrap vertx's logger(see attachment)

57 views
Skip to first unread message

松节油

unread,
Nov 23, 2013, 5:58:32 AM11/23/13
to ve...@googlegroups.com

Then javascript in vertx can use java style log, can use separated log config, can output full javascript error and java exception stacktrace.

like these code:

var utils = require("com/branchitech/vertx/utils");

var log = utils.getLogger("com.branchitech.monitor.ComputeWight");

var intValue = 1;
var stringValue = "stringValue";
var jsonObject = {a:1, b:2};

try {
     Packages.java.lang.Long.valueOf("aaaa");  //throw a javascript error
} catch (err) {
     log.error("intValue %d, stringValue %s, jsonObject %j",  intValue, stringValue, jsonObject, err);
}


will output :

18:53:28.014 [vert.x-eventloop-thread-7] ERROR com.branchitech.monitor.ComputeWight - intValue 1, stringValue stringValue, jsonObject {"a":1,"b":2}
Script Error : JavaException : java.lang.NumberFormatException: For input string: "aaaa"
    Error at : file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js:36
Script Stack :
    at file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js:36

java.lang.NumberFormatException : For input string: "aaaa"
     at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
     at java.lang.Long.parseLong(Long.java:441)
     at java.lang.Long.valueOf(Long.java:540)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
     at java.lang.reflect.Method.invoke(Method.java:606)
     at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:126)
     at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:225)
     at org.mozilla.javascript.optimizer.OptRuntime.call1(OptRuntime.java:32)
     at org.mozilla.javascript.gen.file__home_lzh_dev_metrics_metric_monitor_target_classes_com_branchitech_vertx_ComputeWeight_js_48._c_script_0(file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js:36)
     at org.mozilla.javascript.gen.file__home_lzh_dev_metrics_metric_monitor_target_classes_com_branchitech_vertx_ComputeWeight_js_48.call(file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js)
     at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:394)
     at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3091)
     at org.mozilla.javascript.gen.file__home_lzh_dev_metrics_metric_monitor_target_classes_com_branchitech_vertx_ComputeWeight_js_48.call(file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js)
     at org.mozilla.javascript.gen.file__home_lzh_dev_metrics_metric_monitor_target_classes_com_branchitech_vertx_ComputeWeight_js_48.exec(file:/home/lzh/dev/metrics/metric-monitor/target/classes/com/branchitech/vertx/ComputeWeight.js)
     at org.mozilla.javascript.commonjs.module.Require.executeModuleScript(Require.java:340)
     at org.mozilla.javascript.commonjs.module.Require.getExportedModuleInterface(Require.java:288)
     at org.mozilla.javascript.commonjs.module.Require.requireMain(Require.java:137)
     at org.vertx.java.platform.impl.RhinoVerticleFactory$RhinoVerticle.start(RhinoVerticleFactory.java:229)
     at org.vertx.java.platform.Verticle.start(Verticle.java:82)
     at org.vertx.java.platform.impl.DefaultPlatformManager$19.run(DefaultPlatformManager.java:1551)
     at org.vertx.java.core.impl.DefaultContext$3.run(DefaultContext.java:176)
     at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:354)
     at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:353)
     at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:101)
     at java.lang.Thread.run(Thread.java:744)

utils.js
Reply all
Reply to author
Forward
0 new messages