http://logging.apache.org/log4net/download.html から「incubating-log4net-1.2.10.zip」をダウンロード


□利用の流れ

1.Log4Netインストール

2.アセンブリファイル(AssemblyInfo.cs)編集

3.構成ファイル(App.config)追加/編集

4.ログ出力(実装)


1.Log4Netインストール

ダウンロードファイル「incubating-log4net-1.2.10.zip」を解凍してテキトに配置w
ソリューションエクスプローラより[参照設定]で「参照の追加」から「log4net.dll」を追加する

(同名のDLLが複数存在するが....log4net\bin\net\2.0\release配下のlog4net.dllを使用する)


2.アセンブリファイル(AssenblyInfo.cs)編集

AssemblyInfo.csに以下を追加する

// Log4Net用定義

// ▼Log4Netが参照する設定ファイルの定義

// 設定ファイルの指定方法として(1)~(3)のいずれかを選択

// 「Watch=true」はアプリケーション実行中に設定ファイルを変更した場合に反映が有効

// (1)設定ファイルの名前が「アセンブリ名 + .config」の場合(Visual Studio上では「App.config」)

// [assembly:log4net.Config.DOMConfigurator(Watch=true)]

// ▲Log4NetのバージョンによってはDOMConfiguratorは推奨されない

[assembly:log4net.Config.XmlConfigurator(Watch=true)]

// (2)設定ファイルの名前が「アセンブリ名 + .独自の拡張子(この例では.log4net)」の場合

//[assembly:log4net.Config.DOMConfigurator(ConfigFileExtension="log4net", Watch=true)]

// (3)設定ファイルの「ファイル名」を直接指定する場合

//[assembly:log4net.Config.DOMConfigurator(ConfigFile="../../log4net.xml", Watch=true)]


3.構成ファイル(App.config)追加/編集

ソリューションエクスプローラより[新しい項目の追加]で「アプリケーション構成ファイル(App.config)」を追加する

....ビルドして実行するとbin配下に自動的に「アセンブリ名 + config」というファイルが生成される

App.configに以下を追加する

<?xml version="1.0" encoding="utf-8">

<configuration>

 <!-- 構成ファイルの設定 -->

 <!-- log4netセクションのハンドラ設定 -->

 <configSections>

  <section name="log4net" type="System.Configuration.IgnoreSectionHandler" />

 </configSections>

 <appSettiongs>

  <!-- log4net内部のデバッグメッセージを出力する場合....trueに設定 -->

  <add key="log4net.Internal.Debug" value="true">

 </appSettings>

 

 <log4net>

  <!-- ログ出力先の設定(appenderの設定)>

  <!-- ▼コンソール出力用[ConsoleAppender] -->

  <appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">

   <layout type="log4net.Layout.PatternLayout">

    <param name="ConversionPattern" value="="%d [%t][%-5p]%c %M - %m%n" />

   </layout>

  </appender>

  

  <!-- ▼ファイル出力用[RollingFileAppender](サイズの制約に基づいたログファイルの生成) -->

  <appender name="RollingFileAppender_Size" type="log4net.Appender.RollingFileAppender">

   <!-- ログレベルで出力をフィルタリング -->

   <filter type="log4net.Filter.LevelRangeFilter">

    <param name="LevelMin" value="DEBUG" />

    <param name="LevelMax" value="FATAL" />

   </filter>

   <!-- ファイル名 -->

   <param name="File" value="log4net.log" />

   <!-- 追記する場合:true/上書きする場合:false -->

   <param name="AppendToFile" value="true" />

   <!-- ファイルサイズの制約によるログファイルの切り替え -->

   <param name="RollingFileStyle" value="size" />

   <!-- サイズの制約によるログファイルの切り替え(デフォルトは10MB) -->

   <!-- <param name="MaximumFileSize" value="5KB" /> -->
   <!-- <param name="MaximumFileSize" value="500KB" /> -->
   <param name="MaximumFileSize" value="1MB" />
   <!-- <param name="MaximumFileSize" value="1GB" /> -->
   <!-- 保存するファイル数(数を超えた場合は古いものから削除) -->
   <param name="MaxSizeRollBackups" value="3" />

   <param name="StaticLogFileName" value="true" />
   <layout type="log4net.Layout.PatternLayout">
    <param name="ConversionPattern" value="%d{yyyy/MM/dd HH:mm:ss,fff} [%-5p] %c %M %m%n" />
   </layout>
  </appender>

  

  <!-- ログ出力の対象レベルと出力先の設定 -->

  <!-- ▼Rootの設定 ※デフォルトとなるログ出力設定 -->

  <root>

   <!-- RootはDEBUG以上を出力 -->

   <level value="DEBUG">

   <!-- コンソール出力 -->

   <appender-ref ref="ConsoleAppender" />

   <!-- ログファイル出力 -->

   <appender-ref ref="RollingFileAppender_Size" />

  </root>

 </log4net>

</configuration>


4.ログ出力(実装)

ログ出力したいクラスの先頭に以下の一文を追加する

private static readonly log4net.ILog logger =
log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);