BETA

【VB.NET】log4netを使ったログ出力を試してみた

投稿日:2019-10-23
最終更新:2019-10-23
※この記事は外部サイト(https://www.doraxdora.com/blog/2018/01/27/...)からのクロス投稿です

おはようございます。

VB.NETでも log4net を使ってログ出力を試してみました。

プログラムは前回のものを使用します。
【VB.NET】PostgreSQL に接続してデータ操作(追加・更新・削除)をしてみる

また、[email protected]#は下記の記事を参考にしてください。
【WPF】log4netを使ってログを出力する

Nuget でパッケージをダウンロード

ソリューションエクスプローラーからプロジェクトを選択、右クリックし
「Nuget パッケージの管理」を選択します。

Nuget パッケージ管理画面が表示されるので、
検索窓に「log4net」を入力し、「log4net」を選択、インストールボタンをクリックします。

変更の確認ダイアログが表示されるので、「OK」ボタンをクリックします。

出力ビューに「終了」が出力されればOKです。

アセンブリ設定ファイルの修正

パッケージエクスプローラーから対象のファイルを開きます。

AccemblyInfo.vb

    // log4net を利用するための設定  
    //  
    <Assembly: log4net.Config.XmlConfigurator(ConfigFile:="log4net.config", Watch:=True)>  

設定ファイルの追加

パッケージエクスプローラーから「追加」>「新しい項目」を選択します。

「アプリケーション構成ファイル」を選択して「追加」ボタンをクリックします。

log4net.config

    <?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>  
        <!-- コンソール出力用のアペンダ -->  
        <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"' />  
          <!-- ファイル名の固定 -->  
          <param name="StaticLogFileName" value="false" />  
          <!-- ファイル書き込み { 追記: true, 上書き: false } -->  
          <param name="AppendToFile" value="true" />  
          <!-- 出力文字列のフォーマット -->  
          <layout type="log4net.Layout.PatternLayout">  
            <conversionPattern value="%-5level %date{yyyy/MM/dd HH:mm:ss, fff} [%thread] %logger - %message%newline" />  
          </layout>  
        </appender>  

        <!-- デフォルトの出力設定 -->  
        <root>  
          <level value="ALL" />  
          <appender-ref ref="ConsoleAppender" />  
          <appender-ref ref="DailyFileAppender" />  
        </root>  
      </log4net>  
    </configuration>  

log4net.configファイルのプロパティで、
「出力ディレクトリにコピーする」を「常にコピーする」に変更します。

検索ボタンクリック時にログを出力

次の記述を追加します。

Form1.vb

Form1.vb  

    ' ライブラリのインポート  
    import log4net;  

    public Class Form1  

            ' ログ出力用インスタンスの宣言  
            Private logger As ILog = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType)  

    .  
    .  
    .  
    省略  

        ''' <summary>  
        ''' 検索ボタンクリックイベント.  
        ''' </summary>  
        ''' <param name="sender"></param>  
        ''' <param name="e"></param>  
        Private Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.Click  
            logger.Info("MainWindows 検索ボタンクリック")  
            search()  
        End Sub  

ログを出力してみる

アプリケーションをデバッグ起動し、検索ボタンをクリックします。

コンソール出力にログが出力されるのを確認します。
実行ディレクトリ>log>yyyymmdd.log を確認、ログが出力されていればOKです。

まとめ

[email protected]#とほとんど同じ手順で使うことができました。

ではでは。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@doraxdoraの技術ブログ 主に Java, C#, Python, Javascript の記事を載せていく予定。

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!