java – JRuby – 使用SLF4J
作者:互联网
如何在JRuby中获得以下Java代码(初始化SLF4J记录器)的等效代码?
private final static Logger logger = LoggerFactory.getLogger(Manager.class);
假设我的(工作)示例脚本如下所示:
def test(some_input)
logger = org.slf4j.LoggerFactory.getLogger("SCRIPT");
logger.error("Error...")
end
因为我是JRuby新手,所以我只在方法内部工作,而不是在getLogger中使用.class.
所以问题是:
>如何使用.class作为JRuby代码中的参数调用getLogger?
>如何将Logger对象作为静态放在某处?我想每次调用方法时都避免使用getLogger.
谢谢您的帮助!
解决方法:
你需要使用java_class来获取(包装的)java.lang.Class的“正确”类,而不是像java.util.Date.class那样获取ruby类,例如:
Java::OrgSlf4j::LoggerFactory.getLogger java.util.Date.java_class
至于“静态”存储它你可以使用类变量,但请记住它们是在继承层次结构中共享的,例如:
@@logger = Java::OrgSlf4j::LoggerFactory.getLogger java.util.Date.java_class
标签:java,slf4j,jruby 来源: https://codeday.me/bug/20190704/1381228.html