从Javascript记录Vertx 3应用程序
有时候,在开发过程中将事情记录到控制台是很好的。在我正在创建的Vert.x 3项目中,我尝试按照Vert.x 3文档页面上的说明进行日志记录: 这些文档提供了以下示例代码:从Javascript记录Vertx 3应用程序,java,javascript,vert.x,Java,Javascript,Vert.x,有时候,在开发过程中将事情记录到控制台是很好的。在我正在创建的Vert.x 3项目中,我尝试按照Vert.x 3文档页面上的说明进行日志记录: 这些文档提供了以下示例代码: // 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.
// 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=…”行弹出,并显示以下错误:
部署verticle java.lang.RuntimeException失败:
java.lang.ClassNotFoundException:io.vertx.core.logging.LoggerFactory
在
jdk.nashorn.internal.runtime.ScriptRuntime.apply(ScriptRuntime.java:391)
在
jdk.nashorn.internal.scripts.Script$Recompilation$13$1895AAAAA$\^eval\uUl:27$\u加载(null:107)
在
jdk.nashorn.internal.scripts.Script$Recompilation$4$4036AAAAA$^eval\uUl:27$doRequire(null:149)
在
jdk.nashorn.internal.runtime.ScriptFunctionData.invoke(ScriptFunctionData.java:644)
在
jdk.nashorn.internal.runtime.ScriptFunction.invoke(ScriptFunction.java:229)
(注意:“className”变量看起来也很可疑。它没有说明应该是什么,它在编译时是“未定义的”)
有什么想法吗?这是因为Vertx 3里程碑中的版本稍微不同步。文档已经反映了里程碑7中即将发生的更改,其中类包是:
io.vertx.core.logging.LoggerFactory
但是,在里程碑6中,您需要使用:
io.vertx.core.logging.impl.LoggerFactory
如果将代码更新为:
var logger = Java.type("io.vertx.core.logging.impl.LoggerFactory").getLogger(className);
它应该可以工作。我很好奇——如果你还是使用javascript,为什么不使用node.js呢?我已经屈服于它的许多魅力:加上大老板说这是因为规模。