<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <appender name="errorAppender" type="log4net.Appender.RollingFileAppender">
	<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
        <filter type="log4net.Filter.LevelMatchFilter">
            <levelToMatch value="ERROR" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />
        <file value="err" />
        <encoding value="utf-8"/>
        <preserveLogFileNameExtension value="true" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
		<maxSizeRollBackups value="100"/>
		<maximumFileSize value="256MB"/>
        <datePattern value="yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
    </appender>
      <appender name="warnAppender" type="log4net.Appender.RollingFileAppender">
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
        <filter type="log4net.Filter.LevelMatchFilter">
            <levelToMatch value="WARN" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />
        <file value="warn" />
        <encoding value="utf-8"/>
        <preserveLogFileNameExtension value="true" />
        <appendToFile value="true" />
		<rollingStyle value="Composite" />
		<maxSizeRollBackups value="100"/>
		<maximumFileSize value="256MB"/>
        <datePattern value="yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
    </appender>
    <appender name="infoAppender" type="log4net.Appender.RollingFileAppender">
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
        <filter type="log4net.Filter.LevelMatchFilter">
            <levelToMatch value="INFO" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />
        <file value="info" />
        <encoding value="utf-8"/>
        <preserveLogFileNameExtension value="true" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
		<maxSizeRollBackups value="100"/>
		<maximumFileSize value="256MB"/>
        <datePattern value="yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
    </appender>
    <appender name="debugAppender" type="log4net.Appender.RollingFileAppender">
		<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
        <filter type="log4net.Filter.LevelMatchFilter">
            <levelToMatch value="DEBUG" />
        </filter>
        <filter type="log4net.Filter.DenyAllFilter" />
        <file value="debug" />
        <encoding value="utf-8"/>
        <preserveLogFileNameExtension value="true" />
        <appendToFile value="true" />
        <rollingStyle value="Composite" />
		<maxSizeRollBackups value="100"/>
		<maximumFileSize value="256MB"/>
        <datePattern value="yyyyMMdd" />
        <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" />
        </layout>
    </appender>  
    <root>
        <level value="ALL" />
        <appender-ref ref="errorAppender" />
        <appender-ref ref="warnAppender" />
        <appender-ref ref="infoAppender" />
		<appender-ref ref="debugAppender" />
    </root>  
</log4net>