[英]Java Logging in Azure ApiApp
我需要一些幫助來記錄 Azure 中的 Java 應用程序:
1) 使用 Azure 作為 PaaS,我創建了一個 API APP,配置為使用 Java8 + Tomcat8。 而且我正在嘗試使用 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/ 中所述填充 /site/wwwroot/web.config 也沒有日志。 如何在單獨的文件中配置 Java 應用程序日志記錄(而不將 tomcat 日志記錄(JULI 記錄器)更改為 log4j)?
2)查看tomcat日志,發現WebApp的Start/Stop/Restart並不代表tomcat的Start/Stop/Restart,所以我們沒有任何控制? 當我們在基於 webcontainer 的應用程序的 azure 門戶中執行 Start/Stop/Restart 時,有人知道后面發生了什么嗎?
3) 集中多個 Web 應用程序的 Java 日志記錄的最佳方法是什么? 使用 log4j2 中的 JDBCAppender 或 JPAAppender?
提前致謝
據我所知,您有權在路徑D:\\home\\site\\
內的任何位置寫入,但不能在我測試的路徑D:\\home\\
中寫入。 所以我建議你可以嘗試在D:\\home\\site\\
里面配置指定的路徑進行應用日志記錄。
但是,對於日志持久性,我建議您可以嘗試使用 Azure 表存儲進行應用程序日志記錄。 請參閱已回答的 SO 線程Using Azure Blob Storage with java MVC Azure Web Site以了解。
第二個問題,您可以使用 Kudu 工具的Process explorer
通過 url https://<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
的官方文檔Explore Java trace logs in Application Insights
以了解如何開始。
對於問題 1、2 和 3:使用 Kudu 調試控制台我看到我沒有運行任何 java 進程,這就是為什么沒有任何工作。 謝謝你的提示!
在“應用程序設置”中設置“始終開啟”=“開啟”解決了我的問題。
現在,即使是集中式 Application Insights 監控和日志也能正常工作。
非常感謝 :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.