如何为从JRuby调用的Java JAR设置log4j日志记录级别

如何为从JRuby调用的Java JAR设置log4j日志记录级别,log4j,jruby,catalina,Log4j,Jruby,Catalina,我有一个需要JavaJAR的JRuby项目。javajar使用log4j进行日志记录。我不需要在JRuby代码中使用log4j,但我希望运行JRuby代码,以便在调用插入指令的Java类时,它们遵守我指定的log4j设置 我使用的是Trinidad,希望只需传入“正常”log4jJVM参数就可以了。以下是我刚运行特立尼达时的流程信息: /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/java -Xmx500m -X

我有一个需要JavaJAR的JRuby项目。javajar使用log4j进行日志记录。我不需要在JRuby代码中使用log4j,但我希望运行JRuby代码,以便在调用插入指令的Java类时,它们遵守我指定的log4j设置

我使用的是Trinidad,希望只需传入“正常”log4jJVM参数就可以了。以下是我刚运行特立尼达时的流程信息:

/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/java -Xmx500m -Xss2048k  -Djffi.boot.library.path=/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib/jni -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Xbootclasspath/a:/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib/jruby.jar -classpath : -Djruby.home=/Users/eebbesen/.rvm/rubies/jruby-1.7.5 -Djruby.lib=/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib -Djruby.script=jruby -Djruby.shell=/bin/sh org.jruby.Main script/trinidad
下面是我试图让log4j工作的内容:

/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home/bin/java -Xmx500m -Xss2048k -Djffi.boot.library.path=/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib/jni -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Xbootclasspath/a:/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib/jruby.jar -classpath : -Djruby.home=/Users/eebbesen/.rvm/rubies/jruby-1.7.5 -Djruby.lib=/Users/eebbesen/.rvm/rubies/jruby-1.7.5/lib -Djruby.script=jruby -Dlog4j.debug=true -Dlog4j.configuration=file:log4j.properties -Djruby.shell=/bin/sh org.jruby.Main script/trinidad
所以我只是补充一下

-Dlog4j.debug=true -Dlog4j.configuration=file:log4j.properties
特立尼达已经在做的事情

我没有看到在我运行特立尼达岛时发生的任何log4j日志记录。然而,当我使用Rails控制台时,我的日志语句出现了


我看到的文章介绍了如何在JRuby中使用log4j,但如果可能的话,我希望通过JVM参数来实现这一点。

我通过设置JVM选项JRuby样式来实现这一点:

export JRUBY_OPTS="-J-Dlog4j.debug=true -J-Dlog4j.configuration=file:/absolute/path/to/log4j.properties"
trinidad

这是在我的Java jar中指定的log4j.properties的重写,我能够在jar文件中操作Java类的日志级别(并在jar文件中由类显式调用)。

那么问题出在哪里?如果它没有拾取配置,则可能找不到log4j.properties文件。。。尝试不使用file:CP前缀或包含绝对路径,可能是。我来试试你的建议。