首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jruby log4j集成

Jruby log4j集成
EN

Stack Overflow用户
提问于 2010-10-12 19:28:18
回答 2查看 1.4K关注 0票数 1

我目前正在致力于将Java应用程序的文本工程通用架构(GATE)与使用JRuby架构的Rails应用程序集成在一起。当我们将JRuby与log4j集成时,我得到了以下错误:

代码语言:javascript
复制
0 [main] DEBUG Main.class  - Hello world
gate/Gate.java:80:in `<clinit>': java.lang.NoClassDefFoundError: org/apache/log4

j/Logger (NativeException) from gateapp/Main.java:86:in‘`main’from test.rb:12

test.rb是ruby程序的名称。

我尝试导入所有的log4j apache库,并将类文件包含在test.rb文件中。

当我单独运行Java程序时,它运行得很好。但是,当我生成jar文件并将它们包含在Ruby文件(test.rb)中时,我得到了这个错误

代码语言:javascript
复制
java.lang.NoClassDefFoundError: org/apache/log4j/Logger (NativeException) problem is occuring. How to deal with this problem ?
EN

回答 2

Stack Overflow用户

发布于 2010-10-12 19:46:46

您需要确保log4j JAR文件位于类路径中。一种方法是在您的环境中设置CLASSPATH变量。另一种方法是在ruby代码中调用require,如下所示

代码语言:javascript
复制
  require "/some/path/MyStuff.jar" 
票数 0
EN

Stack Overflow用户

发布于 2013-04-21 02:26:56

下面是我使用couchbase Java SDK进行设置的配置

代码语言:javascript
复制
include Java

def setup_log4j
  java::lang.System.setProperty("net.spy.log.LoggerImpl", "net.spy.memcached.compat.log.Log4JLogger")

  fa = Java::OrgApacheLog4j::FileAppender.new();
  fa.setName("FileLogger");

  fa.setFile("./log/#{Rails.env}.log");
  fa.setLayout(Java::OrgApacheLog4j::PatternLayout.new("%d %-5p [%c{1}] %m%n"));
  fa.setThreshold(Java::OrgApacheLog4j::Level::INFO);
  fa.setAppend(true);
  fa.activateOptions();
  Java::OrgApacheLog4j::Logger.getRootLogger().addAppender(fa)
end

请注意,我之前需要的是lo4j.jar文件。

值得一提的是,有一个名为log4jruby的项目。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3914133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档