Javaロギングフォーマッタに単純なクラス名を使用します

ハリNairさん:

私は、文字列と自分のアプリケーションにログインするためのSimpleFormatterを持っています
"%1$tF %1$tT %4$-7s %2$s %5$s%6$s%n"

私は正式な名前ではなく、単純なクラス名を使用したいと思います。私は2 $フィールドで使用できるフォーマットオプションはありますか?それともこれは新しいハンドラを書く必要がありませんか?

たとえば、ではなく
2019-02-06 07:09:09 INFO simplex.tools.SIMPLEXScheduler main Start

が見たいです
2019-02-06 07:09:09 INFO SIMPLEXScheduler main Start

jmehrens:

私は2 $フィールドで使用できるフォーマットオプションはありますか?

SimpleFormatterはのみで機能をサポートjava.util.Formatterを現在、単純なクラス名としてクラス名をフォーマットする方法はありません。

それともこれは新しいハンドラを書く必要がありませんか?

1つのオプションは、新しい記述することですjava.util.logging.Formatterをそこにはただインストールすることによって行うことができますいくつかのハックですjava.util.logging.Filterを変更するには、クラス名は、しかし、あなたはそれを行うことを避ける必要があります。使用したlogPにより示唆されるように代わりにPJMeisch

免責事項:私はのためのコンテンツ開発者ですcom.sun.mail.util.loggingに含まれているパッケージのJavaMailのプロジェクトを。

あなたはJavaMailのへのアクセス権を持っている場合は、使用することができますcom.sun.mail.util.logging.CompactFormatterだけの単純なクラス名を出力します。トレードオフは、それが印刷されるということであるコンパクトなスタックトレースを例外ため。引数は1〜6はSimpleFormatterので、同じパターンを使用することができるのと同じ順序です。

あなたはJavaMailのを含めるしたくない場合は、使用することができcom.sun.mailを:ロギングmailhandlerのアーティファクトを代わりに。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=211238&siteId=1