2016-03-29 7 views
2

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

+1

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

Antwort

7

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.

+0

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 –

+0

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