How to configure log4net consoleappender to write to Console.Err and Console.Out based on level?

I would write Console.Out when I do something below logger.Warn , and then I would write Console.Err when I write something logger.Error and above. How to write log4net configuration file?

So far I:

<?xml version="1.0" encoding="utf-8"?> <log4net> <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender"> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender> <root> <level value="DEBUG" /> <appender-ref ref="ConsoleAppender" /> </root> </log4net> 
+7
c # log4net
source share
1 answer

You can create two applications and configure them differently. Something like (unverified):

 <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 : fixed logical error with levelMin vs. levelMax .

+12
source share

All Articles