簡體   English   中英

將xsl:message重定向到log4j

[英]Redirect xsl:message to log4j

我正在使用SaxonJ從Java執行XSLT轉換。

由於我的轉換邏輯很復雜,因此我的XSLT文件必須輸出任何調試/信息作為輸出。

有沒有一種方法可以重定向到log4j,以便可以將轉換信息存儲在日志文件中?

我的系統已經使用log4j將輸出記錄到文件中。 我也想附加轉換調試消息。

有任何想法嗎?

我很確定您已經找到了執行此操作的方法。 但我希望我的回答對其他人有用。

您需要做的就是實現MessageListener界面: http : //www.saxonica.com/documentation/javadoc/net/sf/saxon/s9api/MessageListener.html

public class MessageListenerImpl implements MessageListener {
    private static Logger logger = Logger.getLogger(MessageListenerImpl.class);

    public void message(XdmNode content, boolean terminate, SourceLocator locator) {
        if (terminate) {
            logger.error(content.getStringValue());
            System.exit(1);
        } else {
            logger.warn(content.getStringValue());
        }
    }
}

您可以配置自己的消息發射器。 有多種接口可以做到這一點,例如

http://www.saxonica.com/documentation/javadoc/net/sf/saxon/lib/FeatureKeys.html#MESSAGE_EMITTER_CLASS

或s9api XsltTransformer類中有一個更簡單的接口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM