毎回忘れるのでメモ。
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から実行してもファイルがコピーされない。。。
以上です。