基于文本的日志记录具有难以阅读和理解的缺点。是否有一个库可以让我生成结构化和视觉美学的日志文件?
例如,在日志声明后面的问题:
logger.log('Request received from gateway', request)
输出可能是这样的:
<p>Request received from gateway. <a href='detail.html#163'>Details</a></p>
以便日志文件log.html
显示:
Thursday 14th March 04:8:13 - Request received from gateway.
Details
这里的细节可能是一个锚定超链接到另一个html文件,其中包含请求对象的String转储。
这种方法的优点是可以减少冗长度。我们不会立即将所有细节转储到屏幕上,而只会看到概述。如果需要查看详细信息,详细信息将显示在弹出窗口中。
我如何用Java创建更具可读性的结构化日志?
答案 0 :(得分:0)
我找不到任何适合我需要的东西。因此,我创建了一个名为log4j-weblayout
的小open source library。
log4j中有一个org.apache.log4j.HTMLLayout
,但我觉得它没用。它只是将您的语句转储到HTML表中。虽然这比文本转储更好,但它并没有利用HTML功能,如字体颜色和弹出窗口。
有关介绍和使用信息,请查看project website。
功能列表(将在添加更多功能时更新):
Sat Jul 23 2005 02:16:57 150ms
。这增加了冗长度。如果您打印一个较短的表单,如02:16:57
,您将失去必要的细节。 Weblayout通过打印简洁易读的形式并在弹出窗口中显示鼠标中的完整日期来达到最佳位置。 ConnectException
,IllegalArgumentException
和ParseException
合并为:Did not receive response from server, because The request is not valid, because Date cannot be in the past
。 logger.info(exception)
将仅记录消息而不记录堆栈跟踪。如果您手动将stacktrace提取为字符串并将其传递给log4j,那么它将无法读取。 log4j-weblayout将自动执行此操作,并以与IDE相同的方式打印它。