12

私はJavaのデフォルトロガーを使用していますが、現在、出力に多くの役に立たないゴミを出力しています。これが例です。このコード行は次のとおりです。

log.info("Logging pointless information...")

このすべてを出力します:

Oct 26, 2011 9:37:57 PM java.util.logging.LogManager$RootLogger log
INFO: Logging pointless information...

その2行目以外は何も知る必要はありません。どうすればこのゴミを取り除くことができますか? 私が望むのは、単純なテキスト ロギングだけです。

4

3 に答える 3

15

これは後で追加されたのかもしれませんが、少なくとも Java 7 では、java.util.logging.SimpleFormatter はシステム プロパティからの形式の取得をサポートしています。この JVM 引数は、2 行目だけを出力します。

-Djava.util.logging.SimpleFormatter.format='%4$s: %5$s%6$s%n'

個人的には、すべての日付/ソース情報を保持するのが好きですが、改行を取り除きます (そして、よりコンパクトで国際的な日付形式を使用します):

-Djava.util.logging.SimpleFormatter.format='%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %2$s %5$s%6$s%n'
于 2012-05-22T15:40:47.277 に答える
3

これらはほとんど同じ質問をしています:

Jarrod Roberson の提案を実装する方法の例を次に示します: http://www.javalobby.org/java/forums/t18515.html

通常、フォーマッタを適用するには、logging.properties という名前のファイルを作成します。その中に次のような行を入れます:

java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

またはあなたのフォーマッタクラスが何であれ。次に、次のように JVM arg を追加します。

-Djava.util.logging.config.file=logging.properties

または、Logback や Log4j などのより強力なログ システムを使用してください。これらには、コーディングを節約するためのフォーマッターがあらかじめ組み込まれています。

于 2011-10-27T02:55:49.110 に答える