3

私の JSF アプリケーションは、EclipseLink を JPA プロバイダーとして使用して、Glassfish の最新バージョンでデプロイされています。JPA データベースにログ・レコードを保管する、かなり単純化されたロギング機能を作成しました。Log テーブルの列には、タイムスタンプ (もちろん)、ログ レコード タイプの列挙キー フィールド、現在のユーザー ID、ネットワーク アドレス、および文字列メッセージが含まれます。

これはどれも壊れていないので、当然修理に行きたいと思います。(冗談) 私が本当に知りたいのは、確立されたログ API とパッケージのいずれかを使用せず、Glassfish の機能を使用していないために、何か不足しているのでしょうか? 独自のログを作成してオプトアウトしたログの閲覧および分析ツールについて知りたいと思います。コメントをいただければ幸いです。

質問への更新: java.util.Logging に変換する場合、ログ データを SQL バックエンドにキャプチャするパスはありますか? 検索や調べものにはとても便利で、既存のロギング機能はテキストファイルへの出力が中心のようです。

4

2 に答える 2

2

この質問は私の頭の中で転がっています、そして-多くのように-それはたださらなる質問を懇願します。どこから始めれば?

java.util.logging(jul)、commons-logging、Log4Jなど、および他のすべてのバリアントは、従来診断ログと管理ログを対象としています(意図したとは言わないように一生懸命努力しています)。イベントの定義によっては、アプリケーションの「イベント」ログには理想的ではありません。そのステートメントの背後にある主な議論は、これらのツールはコードからテキスト文字列をキャプチャすることを厳密に目的としているということです。

それで、あなたの聴衆は誰ですか?

もしも:

  • 開発者; 問題の診断に役立てる-FINE */ TRACE / DEBUG / INFO / WARN /SEVEREに分類される自由形式のテキストにはjul&familyを使用します
  • 管理者; システムの状態を監視するには-INFO /WARN / SEVEREに分類される自由形式のテキストには、jul&familyを使用します。
  • ユーザー(サポートスタッフを含む) ; アプリのレポート、統計など。特定のデータ列(ユーザー名、会社、IPアドレス、アクション/イベントなど)が必要ですか。-特にリアルタイムで必要な場合は、独自のデータテーブルを作成します。

1行のテキストよりも多くの「帯域幅」が必要な場合は、jul&familyは適していません。

一部の診断ロガーでは、カスタムカテゴリを作成できます。たとえば、Log4Jでは作成できると思います。一般的な選択肢のほとんどはそうではありません(7月は特にうまくいきません)。

ファイナルノート

適切なlog.info()ステートメントを呼び出すことにより、DB/テーブル駆動のログの詳細を診断ログ機能に取り込むのは簡単です。逆に行うのは少し難しくなります。もう一方に対する単純な好奇心から一方を捨てないでください。

于 2012-07-31T17:27:32.613 に答える
1

あなたは主に、Java ツールボックスにログインする最も一般的な 2 つの方法を理解していることを見逃しています。それらは、java.util.logging および log4j を使用した commons ロギングです。はい、他にもありますが、アプリを Java EE アプリのようにすることに興味がある場合は、これらのいずれかを利用することをお勧めします。Glassfish は JUL を活用していると思いますので、そこから始めてみてください。これらのライブラリには、データベースやファイルにログを記録したり、SMS テキスト メッセージを送信したりするための構成可能なアペンダーがあります。また、これらのライブラリが提供する所定の構成方法に固執する場合、他の開発者が使用方法を既に知っているきめ細かなログ制御も利用できます。

于 2012-07-30T04:31:11.563 に答える