使用CDI的日志记录最佳方法

4

我正在使用JEE 7创建一个新版本的RESTful服务架构,并将其部署到Wildfly 9实例上。我想知道是否有一种巧妙的方法来创建日志系统,你能否建议一些模式?非常感谢。


1
我建议您使用logback,关于模式,可以查看logback布局文档,并创建适合您需求的模式。 - António Ribeiro
1个回答

11

我正在使用一个带有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。


很好。那是基本的方法,我在考虑更高级的东西,也许使用观察者模式,但不知道是否会过度设计。 - Marcos J.C Kichel
个人而言,我尽量保持事情尽可能简单(KIS)。您能否指出对您来说需要更高级的东西的限制是什么? - simdevmon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接