我需要一些帮助在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?
提前致谢
答案 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
进程。
对于第三个问题,根据我的经验,我认为使用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监控和日志也能正常运行。
非常感谢:)