使用html/css设置异常堆栈跟踪样式的Java库

mog*_*lol 3 html java

我正在将异常的主体转换为字符串,然后将该异常通过电子邮件发送到java中的给定地址.我想用html格式化我的异常字符串,使其成为一种人类可读的格式,类似于它在堆栈溢出时的显示方式.我想知道Java中是否有任何库可以执行此操作?

StringWriter stringWriter = new StringWriter();
PrintWriter printWriter = new PrintWriter(stringWriter);
t.printStackTrace(printWriter);
String body = stringWriter.toString();
//add html to body here
setMessageBody(body);
Run Code Online (Sandbox Code Playgroud)

要详细说明,我的意思是将行分开<br/>,使用不同颜色的字体显示类名称,使用不同颜色的字体显示行号.这可以通过一些正则表达式完成,但我想知道是否有一个开箱即用的库.

dav*_*r48 6

它不做颜色,但一个非常简单的方法是将堆栈跟踪包装在HTML <pre>元素中.这将至少保留空白和新行.

例如

<pre>
java.lang.ClassCastException: java.lang.Double cannot be cast to java.math.BigDecimal
        at org.hibernate.type.descriptor.java.BigDecimalTypeDescriptor.unwrap(BigDecimalTypeDescriptor.java:36)
        at org.hibernate.type.descriptor.sql.DecimalTypeDescriptor$1.doBind(DecimalTypeDescriptor.java:65)
        at org.hibernate.type.descriptor.sql.BasicBinder.bind(BasicBinder.java:90)
        at org.hibernate.type.AbstractStandardBasicType.nullSafeSet(AbstractStandardBasicType.java:286)
</pre>
Run Code Online (Sandbox Code Playgroud)