2010-03-31 6 views

Antwort

0

nicht FOP wissen Sie, aber Sie können die STDERR, wo immer umleiten immer Sie mit Code wie wie folgt aus:

File errDumpFile = new File("Path\to\a\File") 
FileOutputStream fos = new FileOutputStream(errDumpFile); 
PrintStream ps = new PrintStream(fos); 
System.setErr(ps); 

Hinweis: Sie müssen nicht in eine Datei umleiten, kann der PrintStream Nehmen Sie eine beliebige OutputStream.

1

Ich fand einen Hinweis in der fop Dokumentation: http://xmlgraphics.apache.org/fop/0.95/embedding.html#basic-logging sagen "Wir haben [...] Jakarta Commons Logging geschaltet". Ihr log4j.properties wird wahrscheinlich keinen Effekt haben, da sie Commons-Protokollierung verwenden.

Das in meinem Fall funktioniert:

<logger name="org.apache.fop"> 
    <level value="info" /> 
    <appender-ref ref="logfile" /> 
    <appender-ref ref="stdout" /> 
</logger> 

Ihre commons Konfiguration überprüfen Protokollierung, ob der Erkennungsprozess log4j ( http://commons.apache.org/logging/guide.html#Configuration)

1

Sie etwas tun können finden:

org.apache.commons.logging.impl.Log4JLogger log = (org.apache.commons.logging.impl.Log4JLogger) LogFactory.getLog("org.apache.fop"); 

log.getLogger().setLevel(org.apache.log4j.Level.FATAL); 
+0

Arbeiten für mich. +1 für vollständig qualifizierte Klassennamen. – Ags1

7

Dies ist vielleicht spät, aber in Version 1.1 können Sie eine Klasse erstellen, die EventListener implementiert. In processEvent können Sie einfach alle Nachrichten ignorieren, die Sie nicht sehen möchten.

Von FOP Docs:

import org.apache.fop.events.Event; 
import org.apache.fop.events.EventFormatter; 
import org.apache.fop.events.EventListener; 
import org.apache.fop.events.model.EventSeverity; 

/** A simple event listener that writes the events to stdout and stderr. */ 
public class SysOutEventListener implements EventListener { 

    /** {@inheritDoc} */ 
    public void processEvent(Event event) { 
     String msg = EventFormatter.format(event); 
     EventSeverity severity = event.getSeverity(); 
     if (severity == EventSeverity.INFO) { 
      System.out.println("[INFO ] " + msg); 
     } else if (severity == EventSeverity.WARN) { 
      System.out.println("[WARN ] " + msg); 
     } else if (severity == EventSeverity.ERROR) { 
      System.err.println("[ERROR] " + msg); 
     } else if (severity == EventSeverity.FATAL) { 
      System.err.println("[FATAL] " + msg); 
     } else { 
      assert false; 
     } 
    } 
} 

Verbrauch:

StreamSource strm = new StreamSource(new File(fo)); 
OutputStream outStream = new BufferedOutputStream(new FileOutputStream(new File(pdfName))); 
Fop fop = _fopFactory.newFop(org.apache.xmlgraphics.util.MimeConstants.__Fields.MIME_PDF, outStream); 
FOUserAgent foUserAgent = fop.getUserAgent(); 
foUserAgent.getEventBroadcaster().addEventListener(new SysOutEventListener());