2016年12月23日金曜日

ASP.NETでlog4netを使う

ASP.NETでlog4netを使う場合

nugetでlog4netをinstall

log4netの設定ファイルを作成

 <?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <log4net>
    <!-- ログ出力先の定義 -->
    <appender name="DailyFileAppender" type="log4net.Appender.RollingFileAppender">

      <!-- ログ・ファイル名の先頭部分 -->
      <param name="File" value="c:\temp\EbiWebService" />

      <!-- ファイル名の日付部分 -->
      <param name="DatePattern" value='yyyyMMdd".log"' />

      <!-- ログファイルの切替 { サイズ: Size, 日付: Date } -->
      <param name="RollingStyle" value="Date" />

      <!-- 追加 -->
      <param name="AppendToFile" value="true" />

      <!-- ログ・ファイル名が固定ではないので“false”を指定 -->
      <param name="StaticLogFileName" value="false" />

      <!-- ログの書式 -->
      <layout type="log4net.Layout.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n" />
      </layout>
    </appender>
    <root>
      <!-- ログのレベルを指定 -->
      <!-- すべてのログレベルを出力 -->
      <level value="ALL" />
      <!-- どのログ出力先を使用するか -->
      <appender-ref ref="DailyFileAppender" />
    </root>
  </log4net>
</configuration>


「グローバルアプリケーションクラス」を追加し、Application_Start で設定ファイルの位置を指定します。
void Application_Start(object sender, EventArgs e) 
{
 log4net.Config.XmlConfigurator.Configure(new System.IO.FileInfo(Server.MapPath("~/App_Data/log4net.xml")));
}

後はPGに記述

using System;
using log4net;

public partial class _Default : System.Web.UI.Page
{
    private static readonly ILog log = LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

    protected void Page_Load(object sender, EventArgs e)
    {
        log.Fatal("log4netログ出力~Fatal");
        log.Error("log4netログ出力~Error");
        log.Warn("log4netログ出力~Warn");
        log.Info("log4netログ出力~Info");
        log.Debug("log4netログ出力~Degug");
    }
}

0 件のコメント:

コメントを投稿