负载均衡器的Log4Net单一配置文件

时间:2014-10-31 06:23:44

标签: asp.net-mvc log4net log4net-configuration

我的问题是我们如何在负载均衡器环境中拥有通用的Log4Net配置。 目前我们正在为负载均衡器中的每台机器配置,如果我们进行任何更改,我们必须在所有机器中复制更改。

为了提高可扩展性,我正在寻找一种解决方案,我们可以为负载均衡器提供单一的log4net配置。我确信log4net有一些内置功能可以做同样的事情,但我无法找到解决方案。

为了快速解决方案,我们尝试在数据库中复制配置,我们将在应用程序启动时在log4net.config文件中编写相同的内容(仅限第一次)

需要帮助以更可扩展的方式进行log4net配置。在此先感谢

以下是示例Log4Net.config文件

< log4net> < root> < level value="DEBUG" /> < appender-ref ref="Log_New" /> < /root> < appender name="Log_New" type="log4net.Appender.ADONetAppender"> < bufferSize value="1" /> < connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" /> < connectionString value="server=Server; uid=id; pwd=passweord; database=Log" /> < commandText value="ProcedureName" /> < CommandType value = "StoredProcedure" /> < parameter> < parameterName value="@SessionID" /> < dbType value="String" /> < size value ="200" /> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%property{SessionID}" /> < /layout> < /parameter> < parameter> < parameterName value="@Event" /> < dbType value="String" /> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%property{Event}" /> < /layout> < /parameter> < parameter> < parameterName value="@LogLevelKey" /> < dbType value="Int64" /> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%property{LogLevelKey}" /> < /layout> < /parameter> < parameter> < parameterName value="@StackTrace" /> < dbType value="String" /> < size value ="-1" /> < layout type="log4net.Layout.PatternLayout"> < conversionPattern value="%property{StackTrace}" /> < /layout> < /parameter> < /appender> < /Log4Net>

1 个答案:

答案 0 :(得分:1)

如果您要在启动时从数据库中读取配置,那么将它写入文件然后再次读取它并不重要,如there's an overload to load the configuration from a streamload the configuration from a URI也会过载,这可能是一种解决方案。