java - 如何禁用 FOP 的 strerr 日志记录输出?

标签 java apache-fop

如何禁用 FOP 在处理 FO 文件时自动生成的日志记录输出(通常发送到 stderr)?

我试过在类路径中放置一个 log4j.properties 文件,更改 org.apache.fop 的日志级别,但这没有用。

最佳答案

这可能晚了,但在 1.1 版中,您可以创建一个实现 EventListener 的类。在 processEvent 中,您可以简单地忽略任何您不想看到的消息。

来自 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;
        }
    }
}

用法:

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());

关于java - 如何禁用 FOP 的 strerr 日志记录输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2553199/

相关文章:

barcode - 在模板中生成条形码以用于 Apache FOP

java - Apache FOP 2.0 - 为什么没有找到 SVG 的 ImagePreloader?

java - Apache FOP2 中图像之间的内联文本

pdf - XSL/XSL-FO : Different formatting of a block depending on its page position on PDF page

java - 如何将 Fop 配置文件加载到 FopFactory

Java在构造函数中获取组件尺寸

java - Selenium 无法通过 id 和 xpath 找到元素

java - 模拟多个按键组合

java - 可运行对象上的关闭标志

java - 无法在 Mac OsX 上设置环境变量