This appears to be the way log4net works. When your config file is processed it behaves as if it has been configured like:
<logger name="IBatisNet.DataMapper.Commands.DefaultPreparedCommand" additivity="false">
<level value="DEBUG" />
<appender-ref ref="SpecificAppender"/>
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="LogBufferingAppender" />
</logger>
Fortunately there is a workaround and that is to set a level filter on your appenders, e.g. for the ConsoleAppender:
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d{HH:mm:ss,fff} [%t] %-5p %c{1} - %m%n" />
</layout>
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="INFO" />
<acceptOnMatch value="true" />
</filter>
</appender>
It might also be better to rename the appender to something more descriptive like InfoConsoleAppender
. Also, if you want to be able to log some loggers to console at debug level, then you may need another un-filtered ConsoleAppender
.