web-dev-qa-db-ja.com

Visual Studio 2012でASP.NET(MVCを含む)C#でLog4Netを構成またはセットアップする方法〜〜

ソフトウェアプロセスログをファイルに記録したい。独自のログシステムを作成するのではなく、ASP.NET MVCでLog4Netを使用しようとしていますが、Visual Studio 2015でLog4Netをセットアップする際に問題が発生しました。

  1. Web.config/Global.asaxページのセットアップ方法は?

  2. VS 2012にコンポーネントをインストールする方法〜?

  3. *.csファイルで使用する方法は?

Visual Studio 2015でASP.NET MVC C#を使用してLog4Netを適切に構成する手順は何ですか?

また、ASP.NET WebForms用にセットアップするためのQ&Aも作成しました。 ASP.NET WebフォームでVisual StudioプラットフォームでNugetからLog4netを使用する方法(簡単な方法) を参照してください。

24
Willie Cheng

ステップ1:Nugetを使用してlog4netパッケージを取得するには:

enter image description here

ステップ2:Application_Start()の下のGlobal.asax.csファイルにこの呼び出しを追加して、log4netにXML構成(Web.config)から自分自身を初期化するように指示します。

log4net.Config.XmlConfigurator.Configure();

enter image description here

ステップ3:Web_configのタグ<configSections>...</configSections>の間に構成セクションを追加します。

  <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />

enter image description here

ステップ4:実際のlog4net構成<log4net>...</log4net><configuration>...</configuration>内で</configSections>タグの後)を挿入します。詳細については、 Apache log4net™構成例 を参照してください例:

<log4net debug="true">
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value="logs\log.txt" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="10" />
      <maximumFileSize value="100KB" />
      <staticLogFileName value="true" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%-5p %d %5rms %-22.22c{1} %-18.18M - %m%n" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

enter image description here

これで、ILogを呼び出して、設定されたアペンダーに実際のログステートメントを書き込む準備ができました。

ILog log = log4net.LogManager.GetLogger(typeof(HomeController));      

public ActionResult Index()
{
    log.Debug("Debug message");
    log.Warn("Warn message");
    log.Error("Error message");
    log.Fatal("Fatal message");
    ViewBag.Title = "Home Page";
    return View();
}

enter image description here

73
Willie Cheng