3

構成ファイルを介して構成されているlog4netを使用しています。すべてをデバッグでログインさせたい場合が1つあります(アップグレード中に使用されるコードもあります)。とにかく、現在のログレベルを取得し、デバッグするように設定し、指定されたコードを実行してから、以前の状態に戻すことができますか?

4

3 に答える 3

3

構成ファイルに、DEBUG専用のセクションを追加できます。

 <logger name="MyApp.DebugLogging" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="MainLog"/>
    </logger

次に、コードで、次を使用してこのロガーにアクセスできます。

 private static readonly ILog debuglog = log4net.LogManager.GetLogger("MyApp.DebugLogging");

そして、コードブロックで変数を次のように使用します

 debuglog .Debug(ex);

ここでの考え方は、構成ファイルにさまざまなロガーを作成し、コードブロック内で使用するロガーを柔軟に選択できるようにすることです。

于 2011-01-17T14:03:44.903 に答える
1

ここにアイデアがあります:

log4net構成ファイルのみを使用してください。監視するには、「監視」フラグをtrueに設定します。

この構成ファイル内で、 (各アペンダーで)ロギングフィルターを設定します。その最小レベルを、たとえば、Infoまたは何にでも設定します。http://logging.apache.org/log4net/release/manual/configuration.htmlの「フィルター」セクションを参照してください。

次に、アップグレードフェーズの前に、構成ファイルを編集し、フィルターの最小レベルをたとえばに変更しますDebug

アップグレードが完了したら、フィルターの最小レベルを元の値に戻します。

于 2011-01-17T13:53:09.683 に答える
1

この質問では、Log4Netロガーの動的な再構成について説明しました。これにより、必要な情報が得られるはずです。

于 2011-01-17T14:15:33.490 に答える