【C#】NLog

毎回忘れるのでメモ。

NLogとは

C#でログ吐き出すときに使うやつ。Log4netでもいいけど、NLogのほうが簡単(個人的に)。

インストール

Nugetから NLog.Config をインストールする。
※NLog.Config に NLogは含まれている・・・らしい

設定ファイル

NLog.config ファイルが作成されているので、適当に編集。
コメントアウトされてる部分をコメント外に出しただけだけど・・・・

NLog.config

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log">

  <variable name="myvar" value="myvalue"/>

  <targets>
    <target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
        layout="${longdate} ${uppercase:${level}} ${message}" />

  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="f" />
  </rules>
</nlog>

実装

MainExecution.cs

namespace Sample
{
    class MainExecution
    {
        private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger();

        public static bool Test()
        {
            bool result = true;

            logger.Info("Test Start");
            
            ~~ なんか処理 ~~

            logger.Info("Test End");

            return result;
        }
        
    }
}

出力結果

GeneXus Extensionの場合

だいたいこれをいつも忘れる。

Catalog.xmlに以下を追加

Catalog.xml

<!-- NLog  -->
<File Name="NLog.dll" Target="Packages" />
<File Name="NLog.config" Target="." />

これをしないとVSから実行してもファイルがコピーされない。。。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください