2016-06-29 79 views
0

我有一個非常標準的雲服務(1個Web角色+ 1個輔助角色)。 我正在使用log4net作爲日誌框架,它工作正常。 log4net的優點之一是您可以即時更改配置。例如將日誌級別從Info更改爲Debug。 但這依賴於您更新服務器上的日誌記錄配置文件 - 您無法在雲服務中執行此操作。Azure雲服務+ log4net。如何在不重新部署的情況下更改log4net配置

有沒有人解決這個問題?有沒有一種方法,一種技術,最佳實踐來設置您的log4net配置,以便您可以在不需要重新部署整個軟件包的情況下進行即時更新?

+0

你也可以RDP的實例。 http://stackoverflow.com/questions/23449900/how-to-rdp-to-my-azure-cloud-service – JTaub

回答

0

您可以使用Visual Studio 2015中的雲資源管理器遠程編輯Web應用程序的Web.config文件以更改您的log4net配置。

請注意,如果您還未向上遊提交更改,下次重新部署時,您的更改將被覆蓋。

1

快速回答是你可以RDP到實例並在那裏更改配置文件。儘管這對你來說不是長期的解決方案。

如果您的實例必須由Azure取消以在OS上進行更新,那麼由於使用您最初創建的上載軟件包恢復實例(因爲RDP和配置修改),您將失去配置中的更改, 。這是一個巨大的場景,在Web Apps中更容易。

對於log4net的我見過一對夫婦的做法(雖然我沒有親自要麼實現):

  1. 搶在啓動時運行時的log4net的從Blob存儲的配置。這將允許您的實例從外部獲取配置。因此,您可以在Blob存儲中放置所需的更改,然後重新啓動服務以獲取最新的服務。
  2. 使用應用程序中cscfg文件中的設置並在運行時以動態方式構建log4net。這將允許您更改Azure門戶中的設置,然後將這些更改推送到您的Cloud Service實例。

兩者都需要您或多或少地編寫一些代碼,以便在運行時動態配置log4net。如果您搜索「動態更改log4net配置」,則應該找到與您需要執行的操作相近的內容。

+0

謝謝賈森。在RDP上:你自己做過嗎?我嘗試過但沒有多少運氣。可能是因爲它是一名工人角色。我必須重新啓動配置的實例才能重新讀取,並且在該過程中出現了一些重置對我所做的配置所作的更改。 在您的其他建議:也感謝那些。我以前見過這樣的事情。對我來說,他們看起來並不那麼優雅。但它可能是唯一的選擇 – Jero

+0

是的,我經常遠程進入一些雲服務。試試這篇文章,您可能需要啓用它:https://azure.microsoft.com/en-us/documentation/articles/cloud-services-role-enable-remote-desktop/ –

相關問題