Bri*_*ing 3 c# logging log4net azure
我希望能够动态控制Azure基于云的应用程序执行的日志记录级别.为此,我正在创建一个基于log4net的共享DLL.
关于log4net日志记录有很多问题,但几乎所有问题都涉及在配置文件或其他文本文件中输入和操作设置.在Azure云中,更改web.config意味着重新部署.我想通过从管理门户将Web服务调用到应用程序来更改日志记录.
我还有几个应用程序,我希望每个应用程序都使用我的新的基于log4net的DLL,而不必在每个配置文件中存储相同的设置,如Appender详细信息.应用程序记录相同,一致的数据.
我不想使用Azure诊断程序,因为这会降低此大型用户基础应用程序的性能.此外,我希望将日志记录和诊断降至最低(或完全禁用),并且只在各个级别启用它们来调试生产问题或拍摄其性能快照.我不想重新部署我的应用程序.
什么是最好的方法?
我建议不要将log4net配置存储在web/app.config文件中,而是存储在可以在外部更新的不同文件中(例如:在blob存储中),并且可以从Service Config中动态更改其位置,或者其中的内容可以是改变了没有重新部署.
查看log4net.Config.XmlConfigurator.Configure方法.您可以传递许多不同的参数,而不是仅使用无参数调用它(没有参数默认方法从app.config文件中读取).
执行所需操作的一种方法是将该方法传递给Azure存储中存储的配置文件的公共URL.可以从服务配置控制配置文件的位置.
或者,如果您不想公开配置文件,则可以从存储中的某个私有位置实现您自己的XML配置读取器,并将XML文档传递给Configure()方法.
请在此处查看更多信息:http: //logging.apache.org/log4net/release/manual/configuration.html
| 归档时间: |
|
| 查看次数: |
3370 次 |
| 最近记录: |