Appender に log4net.Appender.ColoredConsoleAppender を使用すると、コンソールに出力するログに色を付けることができます。
App.configの例を以下に示します。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
</configSections>
<log4net>
<!-- コンソールに色づけされたログを出力するAppenderの設定例 -->
<appender name="ColoredConsole" type="log4net.Appender.ColoredConsoleAppender">
<mapping>
<level value="FATAL" />
<foreColor value="White" />
<backColor value="Red" />
</mapping>
<mapping>
<level value="ERROR" />
<foreColor value="White" />
<backColor value="Purple" />
</mapping>
<mapping>
<level value="WARN" />
<foreColor value="Purple" />
<backColor value="White" />
</mapping>
<mapping>
<level value="INFO" />
<foreColor value="White" />
<backColor value="Blue" />
</mapping>
<mapping>
<level value="DEBUG" />
<foreColor value="White" />
<backColor value="Green" />
</mapping>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d[%t] %p - %m%n"/>
</layout>
</appender>
<root>
<!-- すべてのログを出力したい場合 -->
<level value="All" />
<!-- どのログ出力先を使用するか -->
<appender-ref ref="ColoredConsole" />
</root>
</log4net>
</configuration>
App.config 設定の説明
まず、色づけされたログを出力するために、Appenderのtypeには log4net.Appender.ColoredConsoleAppender を指定します。
次に色づけですが、レベルごと(Fatal, Error, Warn Info, Debug)ごとに指定することができます。
色の設定はタグの中で行います。
タグにはログのレベルを、タグには前景色を、タグには背景色を指定します。
使用可能な色は以下のように決まっています。
- Blue
- Green
- Red
- White
- Yellow
- Purple
- Cyan
- HighIntensity
HighIntensityは色を濃くしたい(通常は淡い?感じの色になります)場合に使用します。
HighIntensityを使用する場合は以下のように記述します。
<mapping> <level value="DEBUG" /> <foreColor value="White" /> <backColor value="Green, HighIntensity" /> </mapping>
前回使用したコード例を使用して(以下に再掲)実行してみます。
VBの例
Imports log4net
Private log As ILog = LogManager.GetLogger( _
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)
Sub Main()
log.Fatal("Fatal")
log.Error("Error")
log.Warn("Warn")
log.Info("Info")
log.Debug("Debug")
Console.ReadLine()
End Sub
C#の例
using log4net;
class Program
{
private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
static void Main(string[] args)
{
log.Fatal("Fatal");
log.Error("Error");
log.Warn("Warn");
log.Info("Info");
log.Debug("Debug");
Console.ReadLine();
}
}
実行例は以下の通りです。
ちなみに、HighIntensity を使用すると以下のように色が濃くなります。
Please follow and like us:



コメント