<?xml version="1.0"?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <!-- The DetailsFileAppender writes all messages to a log file-->
    <appender name="DetailsFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="%localappdata%\SourceTree-Settings\alpha\sourcetree.log" />
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="CustomSettings"/>
        <acceptOnMatch value="false" />
      </filter>

      <threshold value="DEBUG" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1000KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <!-- Use %logger rather than %class, we already name the loggers based on class type 
        and using the logger name directly avoids issues when there is an intermediate such as Microsoft.Extensions.Logger-->
        <param name="ConversionPattern" value="%5p [%d] [%t] [%logger] [%M] - %m%n" />
      </layout>
    </appender>
    <appender name="SettingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="%localappdata%\SourceTree-Settings\alpha\settings.log" />
      <filter type="log4net.Filter.StringMatchFilter">
        <stringToMatch value="CustomSettings"/>
      </filter>
      <filter type="log4net.Filter.DenyAllFilter" />

      <threshold value="DEBUG" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="20" />
      <maximumFileSize value="1000KB" />
      <staticLogFileName value="true" />
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%5p [%d] [%t] [%class] [%M] - %m%n" />
      </layout>
    </appender>
    <root>
      <!--add other appenders here and the log messages will be sent to every listed appender-->
      <appender-ref ref="DetailsFileAppender" />
      <appender-ref ref="SettingFileAppender" />
    </root>
  </log4net>
</configuration>