注入记录器,焊接

时间:2010-05-07 16:01:07

标签: web-services ejb-3.0 cdi jboss-weld

4 个答案:

答案 0 :(得分:2)

这是我的方法:

将以下依赖项添加到pom.xml:

<!-- SL4J API -->
 <dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-api</artifactId>
 <version>1.6.0</version>
 </dependency>

 <!-- SLF4J JDK14 Binding  -->
 <dependency>
 <groupId>org.slf4j</groupId>
 <artifactId>slf4j-jdk14</artifactId>
 <version>1.6.0</version>
 </dependency>

 <!-- Injectable Weld-Logger -->
 <dependency>
 <groupId>org.jboss.weld</groupId>
 <artifactId>weld-logger</artifactId>
 <version>1.0.0-CR2</version>
 </dependency>

注入记录器并照常使用:

import javax.inject.Inject;
import org.slf4j.Logger;

public class Example {
  @Inject
  private Logger logger;

  public void exampleFunc() {
    logger.info("Hello Logger!");
  }
}

如果您想使用Log4J而不是SLF4J-JDK14绑定,我找到了this page。我试过了,但我无法让它工作,所以我仍然坚持自己的解决方案。

答案 1 :(得分:0)

确保您的bean位于bean存档中 - 即您拥有META-INF/beans.xml

除了焊接扩展,除非你给出完整的例外,否则我无法帮助你,你可以创建一个@Produces一个Logger

的制作人

答案 2 :(得分:0)

默认的slf4j记录器生成器在Weld Extensions中定义。如果您想在不包括所有焊接扩展的情况下连接自己的生成器,您可以看到生成器是如何编写的here

答案 3 :(得分:0)

在这种情况下,我没有将bean.xml放在META-INF中。