我正在使用SaxonJ从Java执行XSLT转换。
我的XSLT文件必须输出任何调试/信息作为输出,因为我的转换逻辑很复杂。
有没有办法可以重定向到log4j,以便我可以在日志文件中存储转换信息?
我的系统已经使用log4j将输出记录到文件中。我也想附加转换调试消息。
有什么想法吗?
答案 0 :(得分:2)
我很确定你已经知道如何执行此操作。但我希望我的回答对其他人有用。
您需要做的就是实现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());
}
}
}
答案 1 :(得分:1)
您可以配置自己的Message发射器。有多种接口可以做到这一点,例如参见
或者s9api XsltTransformer类中有一个更简单的接口。