2012-02-10 13 views
27

Estoy intentando establecer el nivel de registro en DEBUG en una instancia de Jetty incrustada.¿Cómo habilitar el registro de nivel de DEPURACIÓN con Jetty incrustado?

La documentación en http://docs.codehaus.org/display/JETTY/Debugging dice a -

SystemProperty.set llamada ("debug", "verdadero") antes de llamar a la nueva org.mortbay.jetty.Server().

No estoy seguro de qué es la clase SystemProperty, no parece documentarse en ninguna parte. Intenté System.setProperty(), pero eso no funcionó.

+0

¿Qué versión de Jetty?¿Qué marco (s) de registro tiene en el classpath? – Tim

+0

Estoy usando Jetty 7.5.4 en este momento, pero realmente puedo usar cualquier versión. Para el registro, estoy usando log4j para mi código que no es Jetty y simplemente dejo que SLF4J en JEtty sea por defecto la implementación del registrador NOP (se escribe en la consola de depuración, que es todo lo que necesito). – HolySamosa

Respuesta

24

Mi pregunta fue respondida en la lista de correo embarcadero por Joakim Erdfelt:

Usted está buscando en los viejos documentos embarcadero 6.x en docs.codehaus.org.

El registro de DEPURACIÓN es solo un nivel de registro determinado por la implementación de registro que elija utilizar.

-D {} classref .level = {nivel}

Donde {classref} es la referencia de clase que desea establecer el nivel de, y todos los árbitros sub-clase. y {nivel} es uno de los valores ALL, depurar, INFO, WARN

Ejemplo: -Dorg.eclipse.jetty.LEVEL = INFO - INFO esto permitirá el registro de nivel para todos los paquetes/clases embarcadero. -Dorg.eclipse.jetty.io.LEVEL = DEPURACIÓN - Esto habilitará el registro de nivel de DEPURACIÓN para las clases IO solamente -Dorg.eclipse.jetty.servlet.LEVEL = ALL - esto habilitará TODO el registro (eventos de rastreo, excepciones ignoradas internamente) , etc.) para los paquetes de servlet . -Dorg.eclipse.jetty.util.thread.QueuedThreadPool.LEVEL = ALL - esto habilitará el nivel ALL + solo en la clase específica.

11

En caso de que lo que desea es obtener rápidamente registrar mensajes en stderr añadir algo como esto a la línea de comandos de Java:

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

Añadir esta

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

Snap of Eclipse Configuration

+1

+1, esta es la única solución que funcionó para mí, aunque no entiendo por qué es necesaria la primera opción para que la segunda funcione ... –

+0

Me tomó 4 horas encontrar esto, pero aquí está. Gracias. – Richard

0

Usted puede usar este fragmento para habilitar el registro:

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