【问题标题】:Java Logging in Azure ApiAppAzure ApiApp 中的 Java 日志记录
【发布时间】:2016-05-23 20:46:46
【问题描述】:

我需要一些有关在 Azure 中记录 Java 应用程序的帮助:

1) 使用 Azure 作为 PaaS,我创建了一个配置为使用 Java8 + Tomcat8 的 API APP。 而且我正在尝试使用 log4j2 将应用程序日志记录与 Tomcat 日志分开(在单独的文件中)。 据我所知,我有权在 D:\home 中的任何位置写入内容。因此,我将尝试写入“d:\home\Logfiles\Application\”。 因此,我创建了一个带有一些 log4j2 的 WebApplication,它在我的本地 tomcat 中运行得很好。 但是在 Azure 中运行相同的应用程序(使用正确的日志文件路径)时,我看不到任何日志。 我什至尝试按照https://azure.microsoft.com/en-us/documentation/articles/web-sites-java-custom-upload/ no logs 中的描述填写 /site/wwwroot/web.config 。 如何在单独的文件中配置 Java 应用程序日志记录(无需将 tomcat 日志记录(JULI 记录器)更改为 log4j)?

2) 看了tomcat的日志,发现WebApp的Start/Stop/Restart不代表tomcat的Start/Stop/Restart,所以我们没有控制权? 当我们在 azure 门户中为基于 Web 容器的应用程序执行启动/停止/重新启动时,有人知道背后发生了什么吗?

3) 集中多个 Web 应用程序的 Java 日志记录的最佳方式是什么?使用 log4j2 中的 JDBCAppender 或 JPAAppender?

提前致谢

【问题讨论】:

    标签: java azure logging


    【解决方案1】:

    据我所知,您有权在路径 D:\home\site\ 内的任何位置写入,但不能在我测试的路径 D:\home\ 内写入。所以我建议大家可以尝试在D:\home\site\里面配置指定路径来进行应用日志记录。

    但是,对于日志持久性,我建议您可以尝试使用 Azure 表存储来进行应用程序日志记录。请参考已回答的SO线程Using Azure Blob Storage with java MVC Azure Web Site了解。

    第二个问题,你可以使用Kudu工具的Process explorer通过urlhttps://<your-app-name>.scm.azurewebsites.net/ProcessExplorer/查看java进程,如下图。当您停止应用程序时,java 进程将被终止。如果再次启动应用,在首次访问应用后可以看到java进程。

    对于第三个问题,根据我的经验,我认为使用 Azure Application Insights 服务是最好的方法。同时,Azure Application Insights 通过SDK 支持 Log4j2。您可以参考官方文档Explore Java trace logs in Application Insights了解如何开始。

    【讨论】:

    • 感谢 Peter,Kudu Process Explorer 确实有助于了解他背后发生的事情。 :)
    【解决方案2】:

    对于问题 1、2 和 3: 使用 Kudu 调试控制台,我看到我没有运行任何 java 进程,这就是为什么没有任何工作。感谢您的提示!

    在“应用程序设置”中设置“始终开启”=“开启”解决了我的问题。

    现在,即使是集中式 Application Insights 监控和日志也运行良好。

    非常感谢:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-28
      • 2011-06-17
      • 1970-01-01
      • 1970-01-01
      • 2013-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多