java - 通过 Javascript 进行 Vertx 3 应用程序日志记录

标签 java javascript vert.x

有时,在开发过程中将内容记录到控制台会很好。在我正在创建的 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$Recompilation$13$1895AAAAA$\^eval_.L:27$_load(null:107) at jdk.nashorn.internal.scripts.Script$Recompilation$4$4036AAAA$\^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”变量看起来也很可疑。它没有在任何地方说明它应该是什么,目前在编译时它是“未定义的”)

有什么想法吗?

最佳答案

这是由于 Vertx 3 里程碑中的版本略有不同步。该文档已经反射(reflect)了里程碑 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);

它应该可以工作。

关于java - 通过 Javascript 进行 Vertx 3 应用程序日志记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30879951/

相关文章:

java - 您如何使用 intellij idea 编辑器分析 java 源代码?

javascript - 我可以将本地 var 设置为 'this' 以在匿名回调函数中引用它吗?

java - 垂直x。如何创建真正的多语言 JVM 应用程序?

java - 无法使用 Zip4J 在 java 中解压缩

java - 在 JavaFx 和 Webstart (JNLP) 中提供触摸控制

javascript - 如何在 Node.JS 中向响应对象添加自定义函数

javascript - jQuery 获取高度和宽度

java - 什么是 Vert.x verticle "instances",它们与线程有什么关系?

java - Hawkular 和 Vertx : Why the new installed Hawkular Metric Server does not receive any metrics?

java - 将图像上传到 firebase 存储需要权限吗?如何?