R:如何在 Java 类路径上为 rJava 进程设置 log4j.properties

R: how to setup log4j.properties on Java classpath for rJava processes

我正在使用一个包 (ravro),它又使用 rJava 调用 Avro Java 库来完成它的工作。该库使用 log4j 进行日志记录,当我使用 ravro 的其中一个函数时,我得到了缺少的 log4j 配置消息:

log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

我知道要删除这些消息,我只需要创建一个最小的 log4j.properties 文件并将其放在类路径中。问题是如何在 R 中做到这一点?我确实尝试使用 .jaddclassPath 和包含 log4j.properties 文件的目录,但这似乎不起作用。

如果您在分析上下文中使用 ravro,我很幸运将 log4j.properties 放在工作目录中并使用 rJava::.jinit(getwd()) 将其添加到类路径中。您可以检查并确保该目录添加了rJava::.jclassPath()

在包开发上下文中,我复制了 rJavaPackageExample 并附加了 rJava::.jaddClassPath(file.path(getwd(), "inst/java")).onLoad 的末尾。