!エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。EJBTweetなんか初めて諦めてしまったことな気がします...(-_-;EclipseLinkのログ出力でやりたかったこと去年のエントリ「EclipseLinkのログをSLF4J&Logbackにて出力したい」で、JPQLのクエリからEclipseLinkで生成された実クエリをログ出力できることを確認しました。これ以降の作業を棚上げしていたのですが、実際にやりたいこととしては以下のようなログ出力を出力することでした。'...画面ログと内部ロジックのログは分けるとか、そういうレベルの議論もありますが...。ログ自体はSLF4JとLogbackの組合せで使っていて、EclipseLinkでそのログに上記のようなフォーマットで出したいというものです。EEだとちょっと悩んでしまったり...。結論から書くと、ちょっと時間的にもギブアップをして(一応、色々調べてみたのですが...)、クエリ部分は以下のようなログとなりそうです。'...要はビューサイド、Beanサイドから得る情報は出さない、というノリ...。クエリまでログ出すのは、基本的に障害分析とか性能分析のためなので...。なんだか自分のコーディング力がない気がプンプンしますが、とりあえず、やってみたことだけまとめます。EE6内部のイメージをしています。「商談情報を検索する」みたいなもので、画面で検索ボタン押して、その画面のBackingBeanがEJBのDB検索処理ロジックを呼び出して...みたいな。EJBはステートレスセッションなのでプール上にインスタンスがいて...みたいな。試した実装SLF4J経由のLogbackでロギングしてますが、Logbackは以下のような感じで設定しています。</encoder></appender>で、EclipseLinkのドキュメントを色々みていくと、CustomLoggerを使って出すのが良い...のかなと(^^;EclipseLinkのCustomLoggerドキュメント上記ドキュメントを参考に色々試していたのですが、頭がこんがらがったのでクラス図書きました。Loggerほぼサンプルイコールですが、以下のような感じで。Logクラスは内部でSLF4Jでロギングする処理を持つクラスです。本当はここで、ログイン者情報とか画面IDとかをBackingBeanから取る、あるいはその逆などをしたいのですが、なんともかんとも。}}SessionCustomizerとかSessionEventAdapterとかSessionCustomizerが入ると以下のような形になるっぽいです。Adapterとかも触ってみて、なんかできないかなと模索したり。}}なんというか、何をしてもBackingBeanと縁が遠すぎてどうしたものかと。EEって境界がしっかり分かれていて、CDIで注入は簡単ですが、上記のような既存ログの仕組みにどうやってログイン者情報のインスタンスとか伝播(あるいは逆から取得)させていくんだろ...とか悩んでしまったり。ちなみにpersistence.xmlにあるproperty属性でeclipselink.logging.parametersがあるよという情報を頂き、調べたのですが、これはJPQLのバインド変数を出力するスイッチで使う、と理解しました。あってる...かな(^^;たぶんなんか自分の理解がおかしかったり、EclipseLink内のSession辺りがちゃんと理解できていないのが間違いなく今回の問題・原因なんですが、これ以上時間をかけるのは厳しいため諦めました(-_-;今までで一番悩んだかもしれません。EclipseLinkのログ周辺情報はすごく少ない感じを受けて、ちょっと不安にもなったり...。記事の投稿後、interceptorでloggerを実装して、リフレクションでbeanの情報を取得して...って流れでどうでしょう、とコメント頂きました。ヶ月)長らくC#屋でした。EEを触ることになりました。Web開発も初めてです。日々の勉強メモとしてブログ作成。デビュー当時から堀北真希さんを愛するエンジニアです。現在は乃木坂46が大好きです。(15)にほんブログ村にほんブログ村はてなブログをはじめよう!kikutaro777さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。