2012-02-10 4 views
27

Sto provando a impostare il livello di registrazione su DEBUG in un'istanza di Jetty incorporata.Come abilitare la registrazione del livello DEBUG con Jetty incorporato?

La documentazione a http://docs.codehaus.org/display/JETTY/Debugging dice -

chiamata SystemProperty.set ("DEBUG", "true") prima di chiamare nuova org.mortbay.jetty.Server().

Non sono sicuro di quale sia la classe SystemProperty, non sembra essere documentata da nessuna parte. Ho provato System.setProperty(), ma questo non ha funzionato.

+0

Quale versione di Jetty?Quali strutture di registrazione si dispone sul classpath? – Tim

+0

Attualmente sto usando il Jetty 7.5.4, ma posso davvero usare qualsiasi versione. Per la registrazione, sto usando log4j per il mio codice non-Jetty e semplicemente lasciando SLF4J in JEtty predefinito per l'implementazione del logger NOP (scrive sulla console di debug, che è tutto ciò di cui ho bisogno). – HolySamosa

risposta

24

La mia domanda è stato risposto sulla mailing list Jetty di Joakim Erdfelt:

State guardando i vecchi documenti Jetty 6.x. a docs.codehaus.org.

Il registro DEBUG è solo un livello di registrazione determinato dall'implementazione di registrazione che si sceglie di utilizzare.

-D {} classref .level = {} livello

dove {} classref è il riferimento di classe che si desidera impostare il livello su, e tutti i refs sub-classe. e {level} è uno dei valori TUTTI, DEBUG, INFO, WARN

Esempio: -Dorg.eclipse.jetty.LEVEL = INFO - questo permetterà la registrazione di livello INFO per tutti i pacchetti molo/classi. -Dorg.eclipse.jetty.io.LEVEL = DEBUG - questo abiliterà la registrazione del livello DEBUG solo per le classi IO -Dorg.eclipse.jetty.servlet.LEVEL = ALL - questo abiliterà la registrazione ALL (eventi di traccia, eccezioni ignorate internamente , ecc.) per i pacchetti servlet . -Dorg.eclipse.jetty.util.thread.QueuedThreadPool.LEVEL = ALL - questo abiliterà il livello ALL + solo sulla classe specifica.

11

Nel caso in cui si desidera solo per ottenere rapidamente i messaggi di log a stderr aggiungere qualcosa di simile a java riga di comando:

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog -D{classref}.LEVEL=DEBUG 
8

Aggiungere questo

-Dorg.eclipse.jetty.util.log.class=org.eclipse.jetty.util.log.StdErrLog 
-Dorg.eclipse.jetty.LEVEL=DEBUG 

Snap of Eclipse Configuration

+1

+1, questa è l'unica soluzione che ha funzionato per me, anche se non capisco perché la prima opzione sia necessaria per il secondo a lavorare ... –

+0

Mi ci sono volute 4 ore per trovarlo, ma eccolo qui. Grazie. – Richard

0

È possibile utilizzare questo snippet per abilitare la registrazione:

import org.eclipse.jetty.util.log.Log; 
import org.eclipse.jetty.util.log.StdErrLog; 
. 
. 
. 
StdErrLog logger = new StdErrLog(); 
logger.setDebugEnabled(true); 
Log.setLog(logger);