0

こんにちは、コントロール パネル フォームと出力用のコンソールを備えたマルチスレッドのサーバー アプリケーションに取り組んでいます。コンソール出力によるログを使用しています。ログを有効にする場合はログ付きのバージョンをコンパイルし、ログを無効にする場合はログなしのバージョンをコンパイルします。これは、すべてのコードが行間にあるため、処理されます。

#if Enable_DEBUG_ECHO
Console.WriteLine("Something is happening");
#endif

そのため#define Enable_DEBUG_ECHO、ファイルの上で使用すると、エコー用にコンパイルされます。しかし、ユーザーがシングルクリックなどでログを有効/無効にできるオプションを実装したいと思います。どうすればこれを行うことができるか、誰か教えてください。

4

2 に答える 2

2

ご存知のように、プリコンパイル オプション (コードなど) を使用している場合、プログラムには 1 つの「バージョン」のコードしか含まれていません (つまり、Enable_DEBUG_ECHO を定義すると、「Console.WriteLine("何かが起こっています"); ' は結果の dll に含まれますが、Enable_DEBUG_ECHO を定義しないと含まれません)。

したがって、実行時にログを有効/無効にしたい場合は、プリコンパイル オプションなしでログを作成する必要があります。

したがって、「オン/オフを切り替える」変数を構成ファイルに保存する必要があります。そしてより

if (VARIABLE_FROM_CONFIG)
{
Console.WriteLine("Something is happening");
}
于 2013-03-11T07:14:19.437 に答える
1

NLoglog4netなどのロギング フレームワークを使用すると、これらすべてを簡単に行うことができます。これらは、プログラムまたは構成ファイルを使用して構成できます。

于 2013-03-11T07:10:08.237 に答える