2012-02-23 7 views
1

次のコードを考えてみてください:完全Reseting NLog設定

public static void Main(string[] args) 
{ 
    // 1. At this point NLog will search for most common configuration locations, 
    // as described in http://nlog-project.org/wiki/Configuration_file. 

    var loggerOne = LogManager.GetLogger("LoggerOne"); 

    // 2. We set NLog configuration to null, hoping that the next time the 
    // configuration is requested the whole process (1) will be repeated. 

    LogManager.Configuration = null; 

    // 3. NLog won't actually repeat process (1), and so logging is disabled for 
    // the following logger since the configuration is still null. 

    var loggerTwo = LogManager.GetLogger("LoggerTwo"); 
} 

閲覧NLogのソースコード、起動時にtrueに設定されている基礎となるLogFactoryconfigLoaded分野に関係していることは明らかであり、かつnullConfigurationプロパティに割り当てた後では、falseにリセットされません(これは私にとっては最も理にかなっています)。私の質問は、このプロセスで何かが欠落しているかどうか、あるいはNLogがゼロから再構成してプロセス(1)を繰り返すようにする方法がない(実際にはReflectionを使用しない)場合です。

答えて

0

まず、達成しようとしていることを聞かせてください。これは、NLogの仕組みを見てみるための練習ですか?達成しようとしていることが特にありますか?後者の場合、多分あなたがしたいことをやるための認可された方法があります。

私は考えている(私が試したことはない)ことがあります。

LogManager.Configuration = new LoggingConfiguration(); 

それは、ロギングコンフィギュレーションプロセスを最初から開始されることになりますように新しいLoggingConfigurationに見える割り当て:あなたはこのような何かを行うことができるかもしれないようにNLogのソースを見て

は、それはそうです。私は、古い設定が有効になっている間に検索された可能性のあるロガーがどうなるか分かりません。彼らはまだ有効でしょうか?彼らは何もしませんか?

関連する問題