量産メモ帳

忘れっぽいのでメモを残しています。浅く適当に書きます。

コンポーネントのフォーカスイベントのログ出力。

スポンサーリンク

古臭いやり方かもしれんが、コンポーネントのフォーカス取得やフォーカス喪失のイベントは設定を変えればログ出力することができる。


まず ${JRE_HOME}*1/lib ディレクトリ内にある logging.properties を開き、

java.awt.focus.Component.level = ALL

という風にログレベルを指定する。
ログレベルの種類については、Oracle Technology Network for Java Developers | Oracle Technology Network | Oracleを見れば一目瞭然。
ただしOracle Technology Network for Java Developers | Oracle Technology Network | Oracleのソースを見れば分かると思うが、ALL か FINEST、FINER 以外を指定してしまうと出力されないはず。


あとファイル出力するためには、

handlers= java.util.logging.FileHandler

の記述が必要。


この2つのエントリを設定すれば、AWT/Swing アプリケーションを実行するだけ。
そうすれば、${HOMEDRIVE}/${HOMEPATH} ディレクトリ内に java0.log という名前のファイルに XML 形式でフォーカスイベントが出力される。


もしこれで出力できない場合、どこかで独自の設定をしているものと思われる。
もう一度 logging.properties ファイルの記述を見直すか、以下の API 仕様書をじっくり読めば解決できるものと思われる。



もしそれでも駄目だったら、、、自分で調べて下さいw




追記@2008/06/26:
試してないけど、-Xbootclasspath を利用する方法もあるとか。




*1:ここでは JDK のインストールディレクトリ内にある jre ディレクトリか、JRE のインストールディレクトリのどちらかを指しています。