来自 Javascript 的 Vertx 3 应用程序日志记录
Vertx 3 application logging from Javascript
有时在开发过程中将事情记录到控制台是很好的。在我正在创建的 Vert.x 3 项目中,我正在尝试按照 Vert.x 3 文档页面上的说明进行日志记录:
http://vert-x3.github.io/docs/vertx-core/js/#_logging_from_your_application
文档提供了这个示例代码:
// Note -these classes are Java only
// You would normally maintain one static instance of Logger per Java class:
var logger = Java.type("io.vertx.core.logging.LoggerFactory").getLogger(className);
logger.info("something happened");
logger.error("oops!", exception);
编译时,"var logger = ..." 行出现以下错误:
Failed in deploying verticle java.lang.RuntimeException:
java.lang.ClassNotFoundException: io.vertx.core.logging.LoggerFactory
at
jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:391)
at
jdk.nashorn.internal.scripts.Script$Recompilation95AAAAA$\^eval_.L:27$_load(null:107)
at
jdk.nashorn.internal.scripts.Script$Recompilation36AAAA$\^eval_.L:27$doRequire(null:149)
at
jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:644)
at
jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)
(注意:"className" 变量看起来也很可疑。它没有在任何地方说明它应该是什么,目前在编译时它是 "undefined")
有什么想法吗?
这是因为版本在 Vertx 3 里程碑中略有不同步。该文档已经反映了里程碑 7 中即将发生的变化,其中 class 包是:
io.vertx.core.logging.LoggerFactory
但是,在里程碑 6 中您需要使用:
io.vertx.core.logging.impl.LoggerFactory
如果您将代码更新为:
var logger = Java.type("io.vertx.core.logging.impl.LoggerFactory").getLogger(className);
应该可以。
有时在开发过程中将事情记录到控制台是很好的。在我正在创建的 Vert.x 3 项目中,我正在尝试按照 Vert.x 3 文档页面上的说明进行日志记录:
http://vert-x3.github.io/docs/vertx-core/js/#_logging_from_your_application
文档提供了这个示例代码:
// Note -these classes are Java only
// You would normally maintain one static instance of Logger per Java class:
var logger = Java.type("io.vertx.core.logging.LoggerFactory").getLogger(className);
logger.info("something happened");
logger.error("oops!", exception);
编译时,"var logger = ..." 行出现以下错误:
Failed in deploying verticle java.lang.RuntimeException: java.lang.ClassNotFoundException: io.vertx.core.logging.LoggerFactory at jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:391) at jdk.nashorn.internal.scripts.Script$Recompilation95AAAAA$\^eval_.L:27$_load(null:107) at jdk.nashorn.internal.scripts.Script$Recompilation36AAAA$\^eval_.L:27$doRequire(null:149) at jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:644) at jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)
(注意:"className" 变量看起来也很可疑。它没有在任何地方说明它应该是什么,目前在编译时它是 "undefined")
有什么想法吗?
这是因为版本在 Vertx 3 里程碑中略有不同步。该文档已经反映了里程碑 7 中即将发生的变化,其中 class 包是:
io.vertx.core.logging.LoggerFactory
但是,在里程碑 6 中您需要使用:
io.vertx.core.logging.impl.LoggerFactory
如果您将代码更新为:
var logger = Java.type("io.vertx.core.logging.impl.LoggerFactory").getLogger(className);
应该可以。