नहीं के लिए उत्पादन और नमूना विन्यास रीडायरेक्ट करने के लिए एक जावा वर्ग भी शामिल है, बॉक्स BlazeDS से बाहर log4j या अन्य व्यवस्थाएं सीधे समर्थन नहीं करता।
हालांकि, अपने पसंदीदा लॉगिंग ढांचे के लिए समर्थन जोड़ने में वास्तव में आसान है;
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);
}
}
.. और इसका इस्तेमाल करने, services-config.xml
में सक्षम:
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
<logging>
<target class="example.Slf4jTarget" level="Info">
</logging>
</services-config>
यह उत्तर बहुत अच्छा है। मेरी टिप्पणियां: 1) मुझे अपने एसएलएफ 4jTarget में बराबर() को उसी प्रकार के किसी भी अन्य उदाहरण के लिए सही करने के लिए बराबर करना था ताकि BlazeDS को उस लक्ष्य को दो बार पंजीकृत करने से रोकने के लिए 2) मैंने event.logger.getCategory() स्ट्रिंग को prefixed किया था "BlazeDS।" slf4j को कॉन्फ़िगर करते समय बेहतर नामस्थान संभालने के लिए 3) मैं 1000 अक्षरों में DEBUG संदेशों को छोटा कर देता हूं क्योंकि BlazeDS सभी इन-आउटगोइंग डेटा – Tom
कन्स्ट्रक्टर – fglez