使用CDI记录最佳方法

时间:2016-03-29 18:14:11

标签: java-ee design-patterns logging cdi

使用JEE 7创建新版本的RESTful服务架构,部署到Wildfly 9实例,我想知道是否有一种创建日志系统的聪明方法,你能建议一些模式吗?非常感谢。

1 个答案:

答案 0 :(得分:9)

我正在使用一个带有SLF4J接口的简单生产者来实现JavaEE 7 JAX-RS项目。

import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class LoggerProducer
{

    @Produces
    public Logger getLogger(final InjectionPoint ip)
    {
        return LoggerFactory.getLogger(ip.getMember().getDeclaringClass());
    }
}

使用注射剂非常方便。

@Inject
private Logger logger;

可以轻松更改实施,而不会影响任何业务类。由于实现slf4j-simple对我来说足够了,但是如果你需要更高级的东西,我会看看已经建议的logback或log4j 2.