相关疑难解决方法(0)

如何使用logback禁用accessExternalDTD和entityExpansionLimit警告

我正在使用groovy的logback并在解析xml时出现很多警告.我知道JDK1.7_u45中导致此问题的错误.

Warning:  org.apache.xerces.parsers.SAXParser: Property 'http://javax.xml.XMLConstants/property/accessExternalDTD' is not recognized.
Warning:  org.apache.xerces.parsers.SAXParser: Property 'http://www.oracle.com/xml/jaxp/properties/entityExpansionLimit' is not recognized.
Run Code Online (Sandbox Code Playgroud)

有没有办法关闭这个日志警告出现在DEBUG?我尝试使用Filter编写过滤器,但没有帮助.

java groovy logback saxparser xerces2-j

29
推荐指数
1
解决办法
3万
查看次数

在多线程Java程序中,每个线程都有自己的System.out副本吗?

我正在编写一个多线程Java程序,其中每个线程可能需要将其标准输出重定向到单独的文件.每个线程都有自己的文件.可以在"每个线程"的基础上重定向System.out,还是可以跨所有线程更改System.out全局?

java io multithreading outputstream

13
推荐指数
2
解决办法
5598
查看次数

如何使用Intellij重构将"System.out"调用替换为日志记录?

遗留应用程序有3000多次调用System.out.

使用Intellij的重构工具,我如何(轻松)用对log4j/java.util.logging/etc的调用替换对"System.out"的调用?

我在重构菜单上戳了一下,但没有看到任何选项.

注意:我知道我可以使用'源代码查找/替换',但很奇怪,如果重构工具处理这种类型的用例

谢谢

java intellij-idea

9
推荐指数
1
解决办法
413
查看次数

检测写入标准错误流

有没有办法(无论它有多“hacky”)来检测何时System.err写入Java以便能够在发生这种情况时执行逻辑?— 我目前正在使用Thread(我们称之为SwallowingThread)的自定义子类,它Thread.run()以类似于以下代码的方式在其实现中吞下了许多异常:

public final class SwallowingThread extends Thread {

    ...

    @Override
    public void run() {
        ServerSocket socket = new ServerSocket(80, 100);
        try {
            Socket connected = socket.accept();
            // Do stuff with socket here
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,在我的代码中,我希望能够处理使用;实例时发生的UnknownHostExceptionIOException情况SwallowingThread。有没有办法在它发生后检测到这种捕获并打印到标准错误?— 我最初尝试编写 aUncaughtExceptionHandler来执行此操作,结果发现它没有捕获异常,因为它们被吞下而不是简单地被例如包裹在 a 中RuntimeException并向前抛出。

当然,解决这个问题的一个“更好”的方法是重新编写类的逻辑,但是有没有不接触 的快速解决这个问题的方法SwallowingThread

java multithreading exception-handling exception stderr

2
推荐指数
1
解决办法
765
查看次数