撒克逊人将错误转移到 javax.xml.transform.ErrorListener对象.最初,这些对象中有一个默认对象,它会将异常写入stderr,但是您可以轻松创建新的ErrorListener对象并实现其warning,error和fatalError方法,以将它们发送到自定义日志记录机制.

如何设置新的ErrorListener取决于whether you are using the JAXP interface or the s9api interface.对于JAXP接口,可以在Transformer对象上调用setErrorListener.对于s9api接口,在创建处理器时,XsltCompiler对象或XsltTransformer对象上可以提供Configuration对象上的setErrorListener方法.无论如何,周围有几个.

像这样的东西(s9api):

final PrintStream logFile =

new java.io.PrintStream("errorlog.txt"); // for example

Configuration configuration = new Configuration();

configuration.setErrorListener(new ErrorListener() {

@Override

public void warning(TransformerException exception) throws TransformerException {

exception.printStackTrace(logFile); // or wherever

}

@Override

public void error(TransformerException exception) throws TransformerException {

exception.printStackTrace(logFile);

}

@Override

public void fatalError(TransformerException exception) throws TransformerException {

exception.printStackTrace(logFile);

}

});

Processor proc = new Processor(configuration);

...

如果您不想对程序中的任何内容使用stderr,则最好使用System.setErr在整个程序范围内将其重定向:

System.setErr(new java.io.PrintStream("errorlog.txt"));

它需要一个PrintStream对象,您可以将其包装在任何类型的输出/流中,因此我确定它可以用于您的自定义日志记录机制.

java中的错误流_如何在Java中更改Saxon的标准错误输出流?相关推荐

  1. java字符串字符排列组合_如何在Java中查找字符串的所有排列

    java字符串字符排列组合 In this tutorial, we will learn how to find the permutation of a String in a Java Prog ...

  2. java 查找链表中间元素_如何在Java中一次性查找Java中链表的中间元素

    如何在一次传递中找到LinkedList的中间元素?这是一个 Java 和非Java程序员面试时经常被问到的编程问题.这个问题类似于检查回文或计算阶乘,有时也会要求编写代码.为了回答这个问题,候选人必 ...

  3. zipfile中怎么关闭流_深入学习JAVA -IO流详解

    (一)IO流基本概念 Java对数据的操作是通过流的方式,io是java中实现输入输出的基础,它可以很方便的完成数据的输入输出操作,Java把不同的输入输出抽象为流,通过流的方式允许Java程序使用相 ...

  4. java 合并两个列表_如何在Java中合并两个列表?

    java 合并两个列表 Merging two lists in Java is often a useful operation. These lists can be ArrayLists or ...

  5. java类添加单元测试代码_如何在java中单元测试时跳过一段代码

    如果问题确实是: 如何在Java 然后我给出的答案同意单元测试时,我跳过一段代码.依赖注入,嘲讽框架绝对是真正的单元测试的正确途径. 但是,如果问题是: 使用JUnit(或其他单元测试框架) 然后我想 ...

  6. java中long如何使用_如何在Java中将long转换为int?

    问题 如何在Java中将long转换为int? #1 热门回答(218 赞) 简单类型转换应该这样做: long l = 100000; int i = (int) l; 但请注意,大数(通常大于21 ...

  7. java注释中添加删除线_如何在Word中添加和删除注释

    java注释中添加删除线 Leaving comments in a Word document is a good way to leave feedback on a piece you're r ...

  8. 在java读字符串入文件_如何在java中将文件读入字符串?

    我已经将文件读入String. 该文件包含各种名称,每行一个名称. 现在的问题是我想在String数组中使用这些名称. 为此我写了以下代码: String [] names = fileString. ...

  9. eval在python中是什么意思_如何在Python中使用eval ?

    Python中的 eval是什么? 在Python中,我们有许多内置方法,这些方法对于使Python成为所有人的便捷语言至关重要,而eval是其中一种.eval函数的语法如下: eval(expres ...

最新文章

  1. @SpringBootTest注解进行单元测试无法运行
  2. 这几部经典纪录片,竟然还有人没看过?
  3. Discuz X3.1 论坛修改的方法
  4. Openlayers 3计算长度和面积
  5. 如何将QQ内置可爱的表情包转换为通用GIF文件
  6. 国务院正式发布《新一代人工智能发展规划》
  7. java作业的提交规范与要求
  8. phpstudy php56 zend,关于shopex 4.9 php5.6版安装环境问题
  9. APP在推广之渠道为王(三 )
  10. 数据基础---《利用Python进行数据分析·第2版》第11章 时间序列
  11. 【CSP-S2019模拟】09.24比赛总结
  12. vue实现 导出为word模板
  13. 别用老派交易员眼光看市场回调
  14. 津门杯GoOSS和302重定向漏洞
  15. 安装flashplay的debug版本调试flex
  16. HW:红队眼中的防守弱点与蓝队应对攻击的常用策略
  17. BOS开发工具的使用心得
  18. 怎么把win7换成linux系统软件,win7主题包怎么应用到其他系统比如xp或Linux系统等等...
  19. 机器学习入门-提取文章的主题词 1.jieba.analyse.extract_tags(提取主题词)
  20. Android动态设置纯色图标的颜色

热门文章

  1. 使用手机摄像头链接电脑使用OpenCV
  2. JavaScript学习笔记 01、Javascript的基本知识
  3. Buffer I/O error on dev故障数据库恢复---惜分飞
  4. Vue上传图片(只能上传一个)及可替换
  5. 计算机英语会话实用电脑英语,实用计算机英语
  6. HTTP代理IP的含义 HTTP代理IP如何使用?
  7. 静态方法和非静态方法的区别
  8. NB物联网卡的优势在哪里
  9. 【干货】:批量清除任务栏上快速启动应用的历史记录
  10. idea2020更新了maven自动加载依赖