簡體   English   中英

如何在Windows Azure的Web.config中更改所有Web角色的日志記錄設置?

[英]How to change the Logging settings in Web.config on Windows Azure for all Web Roles?

Windows Azure上的ASP.NET應用程序。 該應用程序是可伸縮的,並且可以在1..N Web角色實例上運行。

我們已將log4net寫入Windows事件日志,並已將Windows Azure診斷合並到Azure存儲。

目前,log4net配置存儲在Web.config中。

對於應用程序日志記錄,我們具有以下要求:

  1. 能夠指定要寫入日志的一種或多種類型的日志條目的列表

  2. 能夠指定將日志條目寫入日志的級別(每個日志條目)

記錄器命名約定滿足第一個要求。 記錄器定義了一個層次結構,並賦予程序員運行時控制是否打印語句的能力。

ILog log = LogManager.GetLogger("Davanti.WMS.Core.Logic.Inventory");

通過使用日志記錄級別DEBUG,INFO,WARN,ERROR和FATAL可以達到第二個要求。

log.Debug("Process has completed");

現在的情況

Web.config文件中只有一個log4net配置可重定向到Windows事件日志。 和控制記錄的內容 (見要求1)和深度 (高度)進行登錄(見第2要求)存儲在中央數據庫設置在應用程序的代碼庫。

這種方法將對應用程序性能產生負面影響,因為應用程序本身將必須檢查(同步)是否需要記錄某些消息,而不是(異步)檢查某些消息。

必要情況

我們想通過log4net設置控制要記錄的內容和記錄級別。 問題是我們必須在所有 Windows Azure Web角色實例上應用log4net設置。 最好的方法是什么?

另外,我們希望有一種更加用戶友好的方式來啟用日志記錄(例如由顧問來進行)。 有什么可能?

例如使用企業庫配置編輯器。 配置設置的直觀表示。 http://img651.imageshack.us/img651/930/logging.jpg

默認配置提供程序將根據您的情況查看app.config或web.config。 但是,您可以使用XmlConfigurator類從Stream加載配置。

http://logging.apache.org/log4net/release/sdk/log4net.Config.XmlConfigurator.Configure_overload_7.html

在角色配置中,您可以指定一個Blob位置,然后使用Azure存儲SDK中的Blob客戶端對象,並從單個Blob位置加載xml。

Log4Net配置: http : //logging.apache.org/log4net/release/manual/configuration.html

這類似於使用xml blob的Azure診斷配置。

需要注意的是,如果要對日志記錄進行實時更改,則需要執行更多的實現,例如對文件更新進行常規排隊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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