* VS2010で使用できないと思っていたが、ネットで解決方法を見つけたので、
その方法を含めて、総合的にやり方を記録しておく
app.configの追加
[1] 対象プロジェクトの右クリックし、[追加]-[新しい項目]-[アプリケーション構成ファイル]を選択し、
ファイル名を「app.config」とする
[2] 「app.config」を以下のようにして、保存する
※この設定が、唯一の欠点な気がする...以下URLで設定を勉強する必要がある
http://codezine.jp/article/detail/71?p=2
<?xml version="1.0" encoding="utf-8" ?>
<!-- [log4net.config] -->
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
</configSections>
<appSettings>
<!-- log4net 内部のデバッグメッセージを出力 -->
<add key="log4net.Internal.Debug" value="true" />
</appSettings>
<log4net>
<!-- コンソール出力用 (VS 上 [出力] ウインドウへの出力) -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<!-- 出力文字列のフォーマット -->
<layout type="log4net.Layout.PatternLayout">
<!--^「日付、スレッド、レベル、logger名、メッセージ」が出力^-->
<!--^「%-5p」というのは5文字以下の場合、右側に空白を入れる設定^-->
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
</layout>
</appender>
<!-- ファイル出力用 -->
<appender name="DailyFileAppender"
type="log4net.Appender.RollingFileAppender">
<!-- ログファイルの切替 { サイズ: Size, 日付: Date } -->
<param name="RollingStyle" value="Date" />
<!-- ファイル名 -->
<param name="File" value="log/" />
<!-- ファイル名に付加する日付パターン -->
<param name="DatePattern" value='yyyyMMdd"_log.log"' />
<!-- ファイル名の固定 -->
<param name="StaticLogFileName" value="false" />
<!-- ファイル書き込み { 追記: true, 上書き: false } -->
<param name="AppendToFile" value="true" />
<!-- 最大保存ファイル数 (古い順に削除) -->
<param name="MaxSizeRollBackups" value="32" />
<!-- 出力文字列のフォーマット -->
<layout type="log4net.Layout.PatternLayout">
<header type="log4net.Util.PatternString" value='[task time = "%date{HH:mm:ss,fff}"]%newline' />
<footer type="log4net.Util.PatternString" value="[/task]%newline" />
<conversionPattern value="%-5level %date{yyyy/MM/dd HH:mm:ss, fff} [%thread] %logger - %message%newline" />
</layout>
<!-- 出力するログ レベルのフィルタ -->
<!-- Level : Fatal, Error, Warn, Info, Debug -->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="Debug" />
<levelMax value="Fatal" />
</filter>
</appender>
<!-- イベント ログ出力用 -->
<appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
<!-- イベント ログ上のアプリケーション名 -->
<applicationName value="AppName" />
<!-- 出力文字列のフォーマット -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%-5level %date{yyyy/MM/dd_HH:mm:ss,fff} [%thread] %logger [%property{NDC}] - %message%newline" />
</layout>
<!-- 出力するログ レベルのフィルタ -->
<filter type="log4net.Filter.LevelRangeFilter">
<levelMin value="ERROR" />
<levelMax value="FATAL" />
</filter>
</appender>
<!-- デフォルトの出力設定 -->
<root>
<level value="ALL" />
<appender-ref ref="ConsoleAppender" />
<appender-ref ref="DailyFileAppender" />
<appender-ref ref="EventLogAppender" />
</root>
</log4net>
</configuration>
呼び出し部分の実装
[1] ログを出力したい対象クラスに以下を追記
private static readonly log4net.ILog logger
= log4net.LogManager.GetLogger(
System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);
[2] 必要な部分に、ログのレベルに注意しながら、実装する
// ログを出力したい箇所に以下のようにする...
logger.Fatal("Fatal(致命的障害):システム停止するような致命的な障害");
logger.Error("Error(障害):システム停止はしないが、問題となる障害");
logger.Warn("Warn(警告):障害ではない注意警告");
logger.Info("Info(情報):操作ログなどの情報");
logger.Debug("Degug(デバッグ・トレース用):開発用のデバッグメッセージ");