TIL

Today I Leaned. 仕事で知ったことや、つまづいたことを時間のある時にメモしておく

log4netでログ出力 - VB

ログ出力にはlog4netというものを使うと良いらしい

プロジェクトに追加

プロジェクトに追加する方法は2つある(他にもあるかも)

  • Webからダウンロードし、追加
  • NuGetパッケージマネージャーを使用し、追加

Webからダウンロードし、追加

ここから「log4net-2.0.8-bin-newkey.zip」をダウンロードし、解凍。

log4net-2.0.8\bin\net\4.5\release内にある以下の2つを任意の箇所(C:\temp\ など)にコピーする。 - log4net.dll - log4net.xml

次に、参照に追加する。プロジェクト>参照に追加>参照>参照ボタン でlog4net.dllを選択し、OKを押す。ソリューションエクスプローラーにlog4netが表示されれば参照の追加ができている。

NuGetパッケージマネージャーを使用し、追加

VisualStudioの プロジェクト > NuGet パッケージの管理 > 参照 > log4netで検索 > クリックし、インストールを行う。

終わり!!簡単!!!!

設定ファイルの指定

次に、設定ファイルを指定する。My Project\AssemblyInfo.vbの最後の行に以下の記述を追加する

<Assembly: log4net.Config.XmlConfigurator(Watch:=True)>

ログの設定を記述

次に、ログの設定を記述する。log4netの設定はApp.configに記述する。こちらを参考にしてみた。

<?xml version="1.0" encoding="utf-8" ?>
<configuration> 
    <configSections>
        <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    </configSections>

    <log4net>

        <appender name="LogToFile" type="log4net.Appender.RollingFileAppender">
            <!-- 作成するログファイル -->
            <file value=".\MyLog.log" />
          
            <!-- 追加で書き込みをする -->
            <appendToFile value="true" />

            <!-- 出力フォーマットを指定 -->
            <layout type="log4net.Layout.PatternLayout">
            <conversionPattern value="%d[%t] %p - %m%n"/>
            </layout>
        </appender>

        <root>
            <!-- すべてのログを出力したい場合 -->
            <level value="All" />
            <!-- どのログ出力先を使用するか -->
            <appender-ref ref="LogToFile" />
        </root>
    </log4net>
</configuration> 

ログを出力する

Imports log4net

...

Private logger As ILog = LogManager.GetLogger( 
    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

...

logger.Debug("debug!")
Private logger As ILog = LogManager.GetLogger( 
    System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)

の部分でロガーを生成する。あとはこれを使って、ログを出力する


参考文献

[log4net] ダウンロードからログ出力までの手順 – .NETちょこっとリファレンス [log4net] log4netの設定 | HIRO's.NET Blog