2

私が行っている小規模な Web サイト開発プロジェクトの非常にアルファ段階にあり、ログ ソリューションとして NLog を使用することにしました。

私のソリューションは、これまでのところログなしで開発されています。現在、ログに追加しています。

例:

private static Logger logger = LogManager.GetCurrentClassLogger();

public int SaveProject(ProjectDto project)
{
    logger.Trace("SaveProject ({0}) : {1}", project.Id, _userId);
    return _pb.SaveProject(project);
}

「GetCurrentClassLogger」メソッドは、自分がどのクラスにいるかを認識できるという点で優れています。

しかし、私がやっている方法ではなく、メソッド名を報告する方法はありますか? 上記の例では、メッセージに「SaveProject」を追加する必要があることがわかります。これを自動的に取得する方法はありますか?または、すべてのメソッド ロギング呼び出しにこれを追加する必要がありますか?

4

1 に答える 1

8

はい、コールサイト レイアウト レンダラーを参照してください。それをレイアウト構成に入れます。例えば:

<?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">

    <targets>
        <target name="console" xsi:type="ColoredConsole" layout="${callsite:className=false:includeSourcePath=false:methodName=true} ${message}"/>
    </targets>

    <rules>
        <logger name="*" minlevel="Trace" writeTo="console" />
    </rules>
</nlog>
于 2013-07-21T00:46:45.300 に答える