gpt4 book ai didi

java - 如何记录堆栈跟踪 aws elastic beanstalk 以快速解决客户错误

转载 作者:行者123 更新时间:2023-11-28 22:51:58 24 4
gpt4 key购买 nike

也许我以错误的方式解决这个问题,或者没有以正确的方式询问 Google。因此,如果这是重复的,我深表歉意。我想快速/高效地解决我的 java webapp 中的客户端/用户错误。

也就是说,我们可以通过执行 e.printstacktrace 轻松地在本地计算机上查看我们的错误所在。我想知道在 EC2/Elastic Beanstalk 实例上执行此操作的最佳方法。如果客户遇到错误,我希望他们能够通过电子邮件询问“票号”或“这个日期大约这个时间的错误”发生了什么。我的想法是,当发生异常时,在我的数据库中记录堆栈跟踪以及用户名并将 db.uniqueKey 返回给用户,这样他们就可以通过电子邮件向我查询该唯一 key /ID 号。

我不知道将堆栈跟踪的子字符串记录到数据库是否是个好主意(让所有这些数据库连接打开/关闭以记录堆栈跟踪)。

当我查看这个主题时,我得到了很多关于 AWS CloudWatch 的信息,但这看起来更像是一个记录我的环境和服务器中发生的一切的工具。这似乎是一个永远滚动日志文件的秘诀。

使用用户名将 stacktrace.substring 记录到数据库是个好主意吗?是否有更好的方式及时向我的用户反馈可能发生的情况?

最佳答案

您可以对 CloudWatch Logs 进行 API 调用以发送单个日志消息,而不是将整个 Tomcat 日志文件发送到 CloudWatch。您也可以在 JSON format 中发送日志这样您就可以包含元数据,例如您的用户 ID、唯一 key 等。请参阅 AWSLogsClient SDK 中的类。

请注意,还有第三方服务,如 LogglyLogEntries它们真的很擅长这类事情,而且在我看来,它们比目前的 CloudWatch Logs 更加用户友好。如果您不想将整个日志文件流式传输给它们,这些服务还提供 API 以从 Java 发送单独的日志消息。

我建议使用像我列出的那些专为日志记录而设计的服务,而不是数据库。这些服务可以很好地扩展,而无需担心打开的数据库连接数等问题。这些服务还将根据日志消息的内容处理发送警报,并提供一个漂亮的 Web 界面来查看日志消息。

如果您决定采用数据库方法,我建议您查看 DynamoDB为此,而不是像 MySQL 或 PostgreSQL 这样的关系数据库。 DynamoDB 可以轻松扩展,将文档轻松存储为 JSON 数据,并且可以触发 Lambda 函数,这些函数可用于执行发送警报等操作。

关于java - 如何记录堆栈跟踪 aws elastic beanstalk 以快速解决客户错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082705/

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