C# 同一解决方案上的两个log4net配置文件

C# 同一解决方案上的两个log4net配置文件,c#,log4net,log4net-configuration,log4net-appender,C#,Log4net,Log4net Configuration,Log4net Appender,我有一个由多个项目组成的解决方案。这是一个桌面应用程序,我需要为这些项目提供两个单独的log4net配置,因为一个项目包含一个使用log4net本身的库。在App.config中配置的一个项目log4net和另一个项目上,它在log4net.configuration文件中配置 下面是一个配置文件 ''' 其他配置文件如下所示 <log4net> <root> <level value="ALL" /> <

我有一个由多个项目组成的解决方案。这是一个桌面应用程序,我需要为这些项目提供两个单独的log4net配置,因为一个项目包含一个使用log4net本身的库。在App.config中配置的一个项目log4net和另一个项目上,它在log4net.configuration文件中配置

下面是一个配置文件 '''


其他配置文件如下所示

      <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="console" />     
    </root>
    <appender name="console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %message%newline" />
      </layout>
    </appender>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="rolling-log.txt" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100" />
      <rollingStyle value="Size" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="[Header]&#13;&#10;" />
        <footer value="[Footer]&#13;&#10;" />
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <logger name="LoggingExample">
      <!-- <appender-ref ref="B" /> -->
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </logger>
   </log4net>

这两个日志文件加载正确,但它们都写入同一个日志文件,分别为log.txt


我需要的是为这两种配置创建两个单独的文件。

似乎您最好不要在app.config中定义log4net配置,而是在专用的XML文件中定义。XML文件的名称可以根据某种约定进行组合,这样您的项目就可以知道每个文件专用的是什么log4net配置XML


您可以使用XmlConfigurator配置log4net。配置(…)函数

两个项目都作为单独的exe运行?不,只有一个exe,第二个项目类型是a库吗?如果是这样,它可能有自己的名称空间,对吗?您可以将appender def复制到第一个配置中,并为该库的命名空间创建一个记录器。是的,它是一个库项目。该库用于编写活动日志。我在app.config上设置了记录器,因为这里EJournals是库名
      <log4net>
    <root>
      <level value="ALL" />
      <appender-ref ref="console" />     
    </root>
    <appender name="console" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date - %message%newline" />
      </layout>
    </appender>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="rolling-log.txt" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100" />
      <rollingStyle value="Size" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <header value="[Header]&#13;&#10;" />
        <footer value="[Footer]&#13;&#10;" />
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <logger name="LoggingExample">
      <!-- <appender-ref ref="B" /> -->
      <level value="ALL" />
      <appender-ref ref="RollingLogFileAppender" />
    </logger>
   </log4net>