2

部分的に次のように見えるNLogを設定する構成ファイルを共有する複数のアプリケーションがあります

<targets>
     <target name="eventlog" type="EventLog" source="ApplicationX" log="Application"
         layout="${date}: ${message} ${stacktrace}" />
</targets>

各アプリケーションに必要な唯一の違いは、ソースを変更することです

私が試したことは、上部のメイン設定の各アプリケーションの開始時です

     var target = ((EventLogTarget) _logger.Factory.Configuration.FindTargetByName("eventLog"));
     target.Source = "Application1";

これはログ出力に影響を与えなかったようです。
NLogの設定にこのような微調整を行うプログラム的な方法はありますか?

アプリケーションごとに異なるバージョンの完全な構成ファイルを保持することなく、NLog構成の小さな変更を管理する他の方法はありますか?

4

1 に答える 1

2

ロガーのファクトリではなく、LogManagerからConfigurationのインスタンスを取得する必要があります。

EventLogTarget target = (EventLogTarget)LogManager.Configuration.FindTargetByName("eventlog");
target.Source = "Application1";

NLogランタイム構成の詳細については、NLog構成APIのドキュメントを参照してください。

于 2012-05-03T15:48:20.160 に答える