Azure ApiApp中的Java日志记录

时间:2016-04-27 17:03:01

标签: java azure logging

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

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

2) 看一下tomcat日志,我意识到WebApp的启动/停止/重启并不意味着启动/停止/重启tomcat,所以我们对它没有任何控制权? 有人知道当我们在基于web容器的应用程序的azure门户中进行启动/停止/重启时发生了什么?

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

提前致谢

2 个答案:

答案 0 :(得分:1)

众所周知,您有权在路径D:\home\site\内的任何位置书写,但不能在我测试的路径D:\home\上书写。因此,我建议您可以尝试在D:\home\site\中配置指定的路径以进行应用程序日志记录。

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

对于第二个问题,您可以使用Process explorer Kudu工具通过网址java检查https://<your-app-name>.scm.azurewebsites.net/ProcessExplorer/流程,请参见下图。停止应用程序时,java进程将被终止。如果您再次启动应用,则可以在首次访问该应用后看到java进程。

enter image description here

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

答案 1 :(得分:0)

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

在“应用程序设置”中设置“Always On”=“On”解决了我的问题。

现在,即使集中的Application Insights监控和日志也能正常运行。

非常感谢:)