アプリケーションの実行中にNLogを再構成する典型的な方法は、構成ファイル(NLog.configなど)を使用することです。ファイル内のロギング設定を定義することができ、ファイルを監視するようにNLogに指示することができます。ファイルが変更された場合(1つ以上のロガーのロギングレベルの変更など)、NLogはファイルの内容に基づいて自身を再設定します。
プログラムでNLogを構成していると述べているので、構成ファイルの変更に基づいて自身を再構成する機能には依存しません。
私はこのような何かにあなたの質問を書き直すことができます:私はコンストラクタで10に初期化するメンバ変数を持っている私のアプリケーションでは
。このメンバ変数は、アプリケーションが終了するまでループする回数を制御します。私のプログラムが実行されている間、私はこの値を変更して、より多くの回数またはより少ない回数をループさせたいと思います。実行時にメンバ変数を変更する方法を知っている人はいますか?
問題はあなたと似ています。実行中のアプリケーションの変更を外部からどのように開始するのですか?私はこれが特にNLogを使うことではないと思います。
あなたのロギング設定をどうにか外見化しない限り、この問題は解決しにくいと思います。
独自の設定ファイルやその他のファイルを使用する場合は、設定ファイルオプションを使用してNLogがすでに行っていることを基本的に複製しています。
何らかの種類のポーリングメカニズムを使用している場合(アプリケーションがある場所(ファイル、レジストリ、???)を定期的に確認してからNLog設定を変更する必要がある場合は、NLog設定を変更します。この場所に新しいログレベルが保存されていますか?アプリケーション全体に1つのロガーしかありませんか、クラスごとに1つの静的なロガーが一般的ですか?後者の場合は、どのロガーを変更したいのか、どのレベルを変更するのか
何らかの共有状態やプロセス間通信でアプリケーションと直接やりとりすることができますか?
あなたがやろうとしていることを誤解しており、実際にそれを達成するための簡単な方法があることは間違いないでしょう。
設定ファイル
利点
使いやすく
: 一般的に、私は利点とdisavantagesとNLogを使用するには、2つの方法で、それぞれがあると言うでしょう。
アプリケーションにNLog固有のコードはほとんどありません。
アプリケーションの実行中にログ設定を変更することができます。
デメリット
configファイルに追いつくために持っています。
あなたのロギングで他の誰かが馬鹿にならないようにしたいかもしれません。
Configをプログラム的に
利点
は、設定ファイルに追いつくために持っていません。
他の人は、あなたのロギングで簡単に惑わすことはできません。
デメリット
アプリケーション内のほかのNLog固有のコード。
アプリケーションの実行中にNLogの設定を変更することはできません。
実際には、ソースコードを変更せずにアプリケーションをコンパイルして再コンパイルした後、NLogの設定を変更することはできません。これがすべてで助けた場合、私は知らない
...
minレベルを 'Trace'に変更することは、アプリケーションを再起動せずにXML設定だけで行うことができます。 – Julian