背景
Tomcatのアクセスログ、Log4Jなどのロガーでリクエスト毎のスレッド名を出力していましたが、諸々設定を変更したところスレッド名のフォーマットが変わってしまいました。
スレッド名
Tomcatのアクセスログであれば「%I」、Log4J系なら「%t」を指定することでスレッド名を出力することができます。イメージ的には以下のような感じ。
http-nio-127.0.0.1-8080-exec-1
こんな感じでサーバのIPアドレスとポートが出力されていたのですが、以下のようになってしまいました。
http-nio-8080-exec-1
わたくしの現場ではサーバが数台あり、そのアプリのログをfluentdを使って1ファイルにまとめていましたが、IPアドレスが出力されなくなってしまったので、ログの各行がどのサーバのログがわけわかめになってしまいました。
分かったこと
どうやらserver.xmlのConnectorタグのaddress属性を消したのが原因でした。address属性は未設定の場合、localhostのIPでlistenするようなので任意属性のようです。
なので、Tomcatにおけるスレッド名のフォーマットは以下だと推測されます。
http-nio-[Connectorタグのaddress属性]-[Connectorタグのport属性]-exec-1
おわり。