簡體   English   中英

Azure ApiApp 中的 Java 日志記錄

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM