Erstellen einer neuen Version meiner RESTful Service-Architektur mit JEE 7, Bereitstellung auf einer Wildfly 9-Instanz, ich frage mich, ob es eine kluge Möglichkeit ist, ein Protokollsystem zu erstellen, können Sie einige Muster vorschlagen? Danke vielmals.Logging besten Ansatz mit CDI
Antwort
Ich verwende einen einfachen Hersteller mit SLF4J-Schnittstelle für ein JavaEE 7 JAX-RS-Projekt.
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());
}
}
Die Verwendung ist recht bequem mit der Injektion.
@Inject
private Logger logger;
Und die Implementierung kann leicht geändert werden, ohne Auswirkungen auf Business-Klassen. Da die Implementierung slf4j-simple für mich ausreichend ist, aber wenn Sie mehr fortgeschrittenes Zeug brauchen, würde ich Logback wie bereits vorgeschlagen oder log4j 2 betrachten.
Kühl. Das ist der grundlegende Ansatz, ich dachte an etwas fortgeschritteneres, vielleicht mit dem Beobachter Muster, aber nicht wissen, ob das wäre nicht über Engineering –
Ich persönlich versuche, die Dinge so einfach wie möglich zu halten (KIS). Können Sie bitte darauf hinweisen, welche Einschränkungen für Sie bestehen, dass Sie etwas Fortgeschritteneres brauchen? – simdevmon
Ich würde vorschlagen, dass Sie [logback] (http://logback.qos.ch) und in Bezug auf die Muster, schauen Sie sich die [logback layouts 'Dokumentation] (http://logback.qos.ch/manual/layouts.html) an und erstellen Sie diejenige, die Ihren Bedürfnissen entspricht. – aribeiro