我正在 Azure 云服务上运行 Java 应用程序。 我看过这篇文章,其中介绍了如何配置 java 项目以使用 log4j 将日志发送到 Azure Insights:https://azure.microsoft.com/en-us/documentation/articles/app-insights-java-trace-logs/ 然而,由于种种原因我不想这样做。我的 java 应用程序已在日志目录中写入多个日志文件(application.log、error.log 等)。我想指向 Azure Insights 中的此目录,以便它可以在云服务上运行的应用程序的多个实例上聚合这些日志文件,然后将它们呈现给我。 (与 AWS Cloudwatch 呈现日志的方式类似)。我怎样才能做到这一点?
最佳答案
我认为这是一个很深奥的问题,需要一些自定义编码才能完成。
我读到的问题是,您有多个日志文件写入一个位置,而您只想解析这些日志文件并发送日志行。此外,出于各种原因,您不想将日志附加程序添加到 Java 代码中。
简短的回答是,不。没有办法让 AI 监视日志文件目录然后发送它们。
下一个简短的答案是,不。 AI 无法开箱即用,但是Log Analytics能。这有点严厉,我还没有读到足够的内容来说明它适合这种情况。但是,由于您使用的是云服务,您很可能安装代理并开始收集日志。
下一个答案有点长。您可以执行此操作,但需要您进行大量自定义编码。我设想的类似于 Azure 诊断接收器的工作方式。
您需要创建一个应用程序来读取日志文件并逐行枚举它们,然后它会根据某种格式解析它们,然后调用 TrackTrace()
方法来记录它。
此选项需要深思熟虑,因为您将读取文件,然后确定如何处理它。
关于java - 如何在 Azure 中聚合 Java 应用程序生成的日志?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38913088/