相关疑难解决方法(0)

在ASP.NET中包含log4Net外部配置文件的最佳实践

我已经看到至少两种方法在ASP.NET Web应用程序中包含外部log4net配置文件:

在AssemblyInfo.cs文件中具有以下属性:

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "Log.config", Watch = true)]
Run Code Online (Sandbox Code Playgroud)

在Global.asax.cs中调用XmlConfigurator:

protected void Application_Start()
{
    XmlConfigurator.Configure(new FileInfo("Log.config"));
}
Run Code Online (Sandbox Code Playgroud)

这样做的最佳做法是什么?

c# asp.net log4net

25
推荐指数
1
解决办法
3万
查看次数

从代码中使用XML配置log4net或NLog

最近我一直致力于一个项目,其中包括我们想要提供一个集中配置系统.我们使用WCF,Silverlight,C#等来创建分布式服务和客户端系统.我们要配置的一件事是记录.显然,我们可以通过app.config或单独的日志配置文件配置log4net或NLog.我们也可以通过代码配置.我想看看是否可以通过代码从XML进行配置.换句话说,假设您在内存中(可能从数据库中读取?)配置任一日志框架所需的整个XML.可以吗?是否可以通过包含正确形成的字符串(在特定日志框架的上下文中)配置log4net和/或NLog,而不是从文件读取或通过"

我已经想出了如何为每个这些日志框架做到这一点.我不确定我们是否真的会使用它,但我认为我会在这里分享它,以防万一其他人可能会发现它有用.另外,请随意评论以这种方式配置日志框架的可行性(或不可行性).

我能想到的两个明显的潜在问题是:

  1. 构造有效的XML(或在数据库中输入)可能很困难.我的第一个猜测是,人们将以与今天相同的方式定义XML.将它放在app.config(或外部配置)文件中,然后运行测试程序以验证XML是否产生预期结果.

  2. 更新数据库中的XML然后让程序/服务/对变化作出反应(比如使用log4net的ConfigureAndWatch选项)是多么容易或困难(或不可能)?我对程序或服务如何知道XML已更新的机制不感兴趣.我们假设程序将定期检查数据库.给定一个新的XML字符串,很容易重新配置日志框架.

我将发布我的技术作为这个问题的答案.

logging log4net nlog

4
推荐指数
1
解决办法
3940
查看次数

标签 统计

log4net ×2

asp.net ×1

c# ×1

logging ×1

nlog ×1