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