Java中的结构化HTML日志记录
基于文本的日志记录的缺点是难以阅读和理解。是否有一个库可以让我生成结构化的、直观的日志文件 例如,在发出以下日志声明时:Java中的结构化HTML日志记录,java,spring,jakarta-ee,log4j,slf4j,Java,Spring,Jakarta Ee,Log4j,Slf4j,基于文本的日志记录的缺点是难以阅读和理解。是否有一个库可以让我生成结构化的、直观的日志文件 例如,在发出以下日志声明时: logger.log('Request received from gateway', request) 输出可以是这样的: <p>Request received from gateway. <a href='detail.html#163'>Details</a></p> 从网关接收到请求 因此,日志文件log.htm
logger.log('Request received from gateway', request)
输出可以是这样的:
<p>Request received from gateway. <a href='detail.html#163'>Details</a></p>
从网关接收到请求
因此,日志文件log.html
显示:
3月14日星期四04:8:13-从网关收到请求。
这里的详细信息可以是指向另一个html文件的锚定超链接,其中包含请求对象的字符串转储
这种方法的优点是可以减少冗长。我们不会一次将所有细节都显示在屏幕上,而只会看到概览。如果我们需要查看,详细信息将显示在弹出窗口中
我如何用Java创建更可读、结构化的日志?我没有找到任何适合我需要的东西。因此,我创建了一个名为
log4jweblayout
的小程序
log4j中有一个org.apache.log4j.HTMLLayout
,但我没有发现它有用。它所做的只是将语句转储到HTML表中。虽然这比文本转储要好,但它没有利用诸如字体颜色和弹出窗口之类的HTML功能
有关介绍和使用信息,请参阅
功能列表(将随着更多功能的添加而更新):
Sat Jul 23 2005 02:16:57 150ms
。这增加了冗长。如果打印一个较短的表单,如02:16:57
,则会丢失重要的细节。Weblayout通过打印简明可读的表单并在鼠标悬停的弹出窗口中显示完整的日期来达到最佳效果李>
ConnectException
、IllegalArgumentException
和ParseException
合并成如下内容:未收到服务器的响应,因为请求无效,因为日期不能在过去李>
更好的堆栈跟踪处理。默认情况下logger.info(异常)
只记录消息,不记录堆栈跟踪。如果您手动将stacktrace提取为字符串并将其传递给log4j,那么它的可读性将非常差。log4jweblayout将自动执行此操作,并以与IDE相同的方式漂亮地打印它
看起来是个好主意me@Leo我正在考虑按照这些思路开发一个开源项目。想知道类似的东西是否已经存在。只是小心不要在你的文件系统中有太多的文件。请看@Leo,您会注意到我编写了detail.html#467
而不是detail467.html
。可能会有一个包含多个部分的文件,而不是每个细节都有一个文件。在继续您的项目之前,请考虑您可以提供哪些Splunk和其他备选方案尚未提供的内容,然后如果您仍然觉得您有一些东西,请继续。您是否使用了与本教程解释的相同的实现逻辑?