さわらブログ

さわら(@xhiroga)の技術ブログ

java.util.logger フォーマット整形職人の朝は早い

PostgreSQLのDriverをKotlinから呼び出して使っています。
このロガーが log4jじゃなくてjava.util.loggerなんです。何が良くないって、java.util.loggerはログの出力先が標準エラー出力になっており(1)、IntelliJ標準エラー出力を赤字で出すので(2)コンソールが真っ赤。

普通は java.util.logger と log4jの間にブリッジを仕込むそうなんですが、Driverってコネクション獲得するたびに呼ばれるので削除したはずの java.util.loggerのハンドラーが復活します。
いい解決策が思いつかなかったので、ちまちまフォーマットを修正することにしました。

修正風景

f:id:hiroga_cc:20200415092623p:plain

IntelliJスニペット機能、Twitterで教えてもらいましたが最高ですね。
ちなみに java.util.logger の謎の文法は java.util.Formatter クラスのものらしい(3)
うーん各言語で統一して...

参考

  1. eclipse - Why does java.util.logging.Logger print to stderr? - Stack Overflow
  2. IntelliJ output console INFO colour - Stack Overflow
  3. logging - Where can I find Documentation on the Java SimpleFormatter format strings? - Stack Overflow