2017-09-01 4 views
0

Ich benutze die org.slf4j.Logger in einem Java EJB-Projekt auf einem Glassfish 3.1.2 Server ausgeführt.So ändern Sie slf4j Logging-Ebene

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class main { 

private static final Logger LOGGER = LoggerFactory.getLogger(main.class); 

public static void main(String[] args) { 
    LOGGER.info("--- show this everytime"); 
    if(LOGGER.isDebugEnabled()) { 
     LOGGER.debug("--- show this only if debug is enable"); 
    } 
    LOGGER.info("--- show this everytime"); 
} 

Also mein Problem ist, ich weiß nicht, wie/auszuschalten auf die verschiedenen Protokollebene (info, debug, Fehler, Spur, warnen). Ich lese über das Erstellen einer Config-Datei oder XML-Datei, aber ich weiß nicht, wo ich diese Dateien in ein EJB-Projekt legen soll. Und gibt es eine Möglichkeit, es so zu konfigurieren?

LOGGER.setLevel("info"); 
+0

Ich glaube nicht, dass es einen Weg gibt, einen Setter wie in Ihrem Codebeispiel zu nennen, weil das Niveau einer Logger Einstellung ist eine Implementierung Ebene betreffen nicht etwas, das SLF4J-Schnittstelle spezifiziert. Sie könnten wahrscheinlich einen Weg finden, dies mit Code zu tun, der für Ihre Logging-Implementierung spezifisch ist, aber dann hängt Ihr Code von der Logging-Implementierung ab, die genau das ist, was SLF4J Ihnen helfen soll zu vermeiden. –

Antwort

0

Ich fand die Lösung. Ich bin in der Lage die Protokollierungsebene mit der folgenden Zeile zu ändern:

System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info"); 

ich auch den slf4j-api-1.7.25.jar und slf4j-simple-1.7.25.jar zum Build Path hinzufügen muß und füge die Gläser der Glassfish Lib hinzu.

Der vollständige Code sieht wie folgt aus:

import org.slf4j.LoggerFactory; 

public class main { 

public static void main(String[] args) { 

    System.setProperty(org.slf4j.impl.SimpleLogger.DEFAULT_LOG_LEVEL_KEY, "Info"); 
    final org.slf4j.Logger LOGGER = LoggerFactory.getLogger(LogTest.class); 

    LOGGER.info("--- show this everytime"); 
    if(LOGGER.isDebugEnabled()) { 
     LOGGER.debug("--- show this only if debug is enable"); 
    } 

    LOGGER.info("--- show this everytime"); 
}