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

问题描述 投票:0回答:1

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

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

<configSections>

    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,Log4net"/>
  </configSections>
  <log4net>
    <root>
      <level value="DEBUG"/>
      <appender-ref ref="SmtpAppender"/>
      <appender-ref ref="LogFileAppender"/>
      <appender-ref ref="ColoredConsoleAppender"/>
    </root>
    <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
      <param name="File" value="D:\seperatelog.txt"/>
      <param name="AppendToFile" value="true"/>

      <rollingStyle value="Date" />
      <datePattern value="'On_'yyyy-MM-dd'.log'" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="14" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
    <appender name="ColoredConsoleAppender" type="log4net.Appender.ConsoleAppender">
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
    <appender name="SmtpAppender" type="log4net.Appender.SmtpAppender">
      <to value="[email protected]"/>
      <from value="[email protected]"/>
      <subject value="TagFileUploader ERROR"/>
      <smtpHost value="prc-mn-ex01"/>
      <bufferSize value="512"/>
      <lossy value="true"/>
      <evaluator type="log4net.Core.LevelEvaluator">
        <threshold value="ERROR"/>
      </evaluator>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
    <appender name="cargillsJournal" type="log4net.Appender.FileAppender">
      <param name="File" value="D:\BankInABoxffffff-log.txt"/>
      <param name="AppendToFile" value="true"/>
      <rollingStyle value="Date" />
      <datePattern value="'On_'yyyy-MM-dd'.log'" />
      <appendToFile value="true" />
      <maxSizeRollBackups value="14" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %level %logger - %message%newline" />
      </layout>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger: %message%newline"/>
      </layout>
    </appender>
  </log4net>

其他配置文件在下面

      <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>

这两个日志文件已正确加载,但是它们都写到同一日志文件seperatelog.txt中

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

c# log4net log4net-configuration log4net-appender
1个回答
0
投票

似乎您最好不在app.config中而是在专用XML文件中定义log4net配置。 XML文件的名称可以根据一些约定来组成,因此您的项目将知道每种log4net配置XML专用于什么。

© www.soinside.com 2019 - 2024. All rights reserved.