log4netのメモ。 incubating-log4net-1.2.9-betaを使用。
参考にさせてもらいました。
ファイル名.yyyy-MM-dd.logになるってのがいいですね(^^。設定ファイルapp.configは以下の通り。
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<!-- log4net section -->
<section name="log4net" type="System.Configuration.IgnoreSectionHandler" />
</configSections>
<log4net>
<!-- Console Logging -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type="log4net.Layout.PatternLayout">
<conversionPattern
value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"
/>
</layout>
</appender>
<!-- Rolling Logging -->
<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="error" />
<appendToFile value="true" />
<encoding value="UTF-8" />
<rollingStyle value="Date" />
<datePattern value='"."yyyy-MM-dd".log"' />
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value="[header]%newline" />
<footer type="log4net.Util.PatternString" value="[footer]%newline" />
<conversionPattern
value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"
/>
</layout>
</appender>
<!-- Default Logger -->
<root>
<level value="DEBUG" />
<appender-ref ref="ConsoleAppender" />
</root>
<logger name="Hoge.Foo">
<level value="ERROR" />
<appender-ref ref="RollingLogFileAppender" />
</logger>
</log4net>
</configuration>
ILog logger = LogManager.GetLogger(typeof(Foo));
FooクラスのNamespaceがHogeであった場合、 Namespace+Class名が一致するロガーを取得(この場合logger nameがHoge.FooであるRollingLogFileAppender)することができます。
<encoding value="UTF-8" />
を指定することで出力文字コードも指定できました。
root(デフォルト)を適用する場合
ILog logger = LogManager.GetLogger(typeof(HogeClass));
一致するものがない場合はrootが適用されます。
incubating-log4net-1.2.9-betaではheaderおよびfooterは変更されていて、\r\nが使用できませんでした。 conversionPatternの%newlineを利用すれば大丈夫でしょうか? headerおよびfooterにtypeを指定すればいいみたいです。
<header type="log4net.Util.PatternString" value="[header]%newline" /> <footer type="log4net.Util.PatternString" value="[footer]%newline" />
[assembly: log4net.Config.XmlConfigurator(Watch=true)]
[2005/11/01修正]