我的问题是我们如何在负载均衡器环境中拥有通用的Log4Net配置。 目前我们正在为负载均衡器中的每台机器配置,如果我们进行任何更改,我们必须在所有机器中复制更改。
为了提高可扩展性,我正在寻找一种解决方案,我们可以为负载均衡器提供单一的log4net配置。我确信log4net有一些内置功能可以做同样的事情,但我无法找到解决方案。
为了快速解决方案,我们尝试在数据库中复制配置,我们将在应用程序启动时在log4net.config文件中编写相同的内容(仅限第一次)
需要帮助以更可扩展的方式进行log4net配置。在此先感谢
< 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>
答案 0 :(得分:1)
如果您要在启动时从数据库中读取配置,那么将它写入文件然后再次读取它并不重要,如there's an overload to load the configuration from a stream。 load the configuration from a URI也会过载,这可能是一种解决方案。