You can create two appenders, and configure them differently. Something like (untested):
<log4net>
<appender name="ConsoleOutAppender" type="log4net.Appender.ConsoleAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="DEBUG" />
<levelMax value="WARN" />
</filter>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="..." />
</layout>
</appender>
<appender name="ConsoleErrorAppender" type="log4net.Appender.ConsoleAppender">
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
<target value="Console.Error" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="..." />
</layout>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleOutAppender" />
<appender-ref ref="ConsoleErrorAppender" />
</root>
</log4net>
EDIT: Corrected logic error with levelMin
vs. levelMax
.