常用日志记录log4net ONLINE WATCH

时间:2013-07-26 16:31:27

标签: c# log4net app-config log4net-configuration common.logging

我在使用Common.Logging.Log4net的应用程序中有以下app.config(省略了几个部分以简化示例):

<configuration>
  <configSections>
    <sectionGroup name="common">
      <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" />
    </sectionGroup>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
      ...
      <common>
        <logging>
          <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4net1211">
            <arg key="configType" value="INLINE" />
          </factoryAdapter>
        </logging>
      </common>
      <log4net>
        <appender ...
        <root>
          <level value="INFO" />
        </root>
      ...
      </log4net>

我们的想法是让Common Logging运行时自动配置log4net(没有程序集属性),并使用唯一的文件来进行此配置,即应用程序的 app.config

虽然使用此INLINE configType但我无法在应用程序运行期间即时更改app.config以更新日志记录配置,因为此行为是通过FILE-WATCH configType实现的。

所以我想:

  1. 只有一个配置文件(我的应用程序的app.Config)
  2. 不必将Assembly属性包含在AssemblyInfo中以配置log4net
  3. 在应用程序运行时更改app.Config log4net部分(例如root日志记录级别值),让应用程序在更改app.config时自动更新其日志记录配置。
  4. 任何想法如何使用Common Logging + Log4net填写这些要求?

0 个答案:

没有答案