no, fuera de la caja BlazeDS no soporta log4j u otros marcos directamente.
Sin embargo, es realmente simple agregar soporte para su marco de registro favorito; He utilizado el siguiente para obtener la salida en SLF4J:
package example;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import flex.messaging.log.AbstractTarget;
import flex.messaging.log.LogEvent;
public class Slf4jTarget extends AbstractTarget {
// log4j levels: OFF - FATAL - ERROR - WARN - INFO - DEBUG - TRACE - ALL
// blazeds levels: NONE - FATAL - ERROR - WARN - INFO - DEBUG - ALL
@Override
public void logEvent(LogEvent event) {
Logger log = LoggerFactory.getLogger(event.logger.getCategory());
if (event.level >= LogEvent.ERROR)
log.error(event.message, event.throwable);
else if (event.level >= LogEvent.WARN)
log.warn(event.message, event.throwable);
else if (event.level >= LogEvent.INFO)
log.info(event.message, event.throwable);
else if (event.level >= LogEvent.DEBUG)
log.debug(event.message, event.throwable);
else
log.trace(event.message, event.throwable);
}
}
.. y usarlo, habilitarlo en services-config.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<logging>
<target class="example.Slf4jTarget" level="Info">
</logging>
</services-config>
Esta respuesta es genial. Mis comentarios: 1) Tuve que anular equals() en mi Slf4jTarget para devolver verdadero para cualquier otra instancia del mismo tipo para evitar que BlazeDS registre ese objetivo dos veces 2) Prefijo la cadena event.logger.getCategory() con "BlazeDS". tener un mejor identificador de espacio de nombres al configurar slf4j 3) trunco los mensajes DEBUG a 1000 caracteres ya que BlazeDS vuelca todos los datos entrantes y salientes – Tom
También es conveniente llamar a super() desde el constructor – fglez