gpt4 book ai didi

java - 代码不打印整个堆栈跟踪

转载 作者:行者123 更新时间:2023-12-02 05:47:00 25 4
gpt4 key购买 nike

我有一段java代码可以捕获顶级异常,如下所示`

public Class myTest {

@Test
public void test() {

try {
callSomeMethod()
} catch (Exception e) {
LOGGER.error ("Exception occured", e);
LOGGER.error (e,e);
}
}

private callSomeMethod() throws Exception {
...
...

}
}

不知何故,我无法捕获整个堆栈跟踪。这是由于 Logger 造成的吗?我正在使用 org.apache.log4j.Logger;我尝试了 Logger 方法的两个版本,但仍然丢失了整个堆栈跟踪。我只收到异常消息。而上面的方法实际上是一个带有@Test注释的testng测试`

预先感谢您的宝贵时间。

下面专家提问的完整代码供引用。请注意,在我使用 ByteArrayStream 将堆栈跟踪作为字符串按照下面给出的答案进行管道传输后,这才起作用。

`

@Test 
public void importLocalCertsOnSecondary () {
LOGGER.info("Certificate Import URI-" + URIs.IMPORT_LOCAL_CERTIFICATE.getUri());
try {
LOGGER.info ("@@ Importing Local Cert for node=>" + TestEnvironment.getIPs().get(0).getIp());
Util.importCertificates (URIs.IMPORT_LOCAL_CERTIFICATE.getUri(),
Constants.IMPORT_LOCAL_CERT_XML.getValue(),
Constants.DIRECTORY_PATH.getValue(),
Constants.LOCAL_CERT_CRT_FILE.getValue(),
Constants.constants.LOCAL_CERT_KEY.getValue(),
ipAddress,"local");
} catch (Exception er) {
ByteArrayOutputStream os = new ByteArrayOutputStream ();
er.printStackTrace (new PrintStream (os));
LOGGER.error(new String(os.toByteArray ()));
//LOGGER.error(er);
LOGGER.error(" Exception importing certs-"+ er.getLocalizedMessage());
Assert.fail(new String(os.toByteArray ()));
}
}

`

最佳答案

我对只接受字符串的记录器使用这个小技术:

ByteArrayOutputStream os = new ByteArrayOutputStream ();
e.printStackTrace (new PrintStream (os));
LOGGER.error(new String(os.toByteArray ()));

关于java - 代码不打印整个堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23965429/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com