1

私は現在、java.util.logging.Logger に関する 2 つの問題に取り組んでい
ます。出力の後に改行を挿入しないでください (System.out.print や println などの機能)。私はすでに format() メソッドをオーバーライドしました。ログ レコードに「no-linebreak-flag」を追加し、これを format メソッドで分析するのは正しいでしょうか、それとも遅すぎるでしょうか (私はこのような sthg を実現する正しい方法はどれですか?

2)現在、目的のロガーを作成するファクトリ クラスがあります (FileLogging とコンソール ログは異なります)。そうではない。または、各クラスのデバッグ フラグをチェックしてから、ロガーを作成する (debug==true) かどうかを確認する必要がありますか? また、可能であれば、Logging-Properties ファイルではなく、ソース コードを介して必要なすべての設定を行いたいと考えています...

ロガーにはまだよくわかっていない何かがあるような気がします^^

前もって感謝します!

4

1 に答える 1

1

#2 - すべての情報をロギング構成ファイルに入れる必要があります。全体的なポイントは、この種のものをコードから「スライス」して、プロパティ ファイルに入れることです。

基本的に - コード内で常に logger.debug() を呼び出します。ロギングがデバッグ メッセージをフィルタリングするように構成されている場合、hem からの出力は表示されません。

私は次のようなコードを見てきました

if(logger.debugenabled()){
   logger.debug();
}

私が質問したところ、logger.debug 呼び出しによるパフォーマンスの低下は望まないという声がありました。私の謙虚な意見では、これはごく一部のアプリケーションにのみ関連するものであり、おそらく logger.debug 呼び出しをそのままにして、ロギング フレームワークに任せるべきです。

ああ、コンソールアペンダーのソースコードをチェックしました。改行がハードコードされているようです。

      for (int i = 0; i < len; i++) {
        this.writer.write(s[i]);
        this.writer.write(Layout.LINE_SEP);
      }
    }
  }
于 2009-07-24T11:47:05.693 に答える