1

始めるのに少し助けが必要です。GlassFish 3.1(またはそれ以降)でデプロイする予定の新しいJSF-2Webアプリケーションがあります。通常、サーバーはすべてのログファイルをテキストとしてプライベートディレクトリの1つに保存します。これには、ether System.println(..)またはjava.util.logging.Logger.getLogger(...)のようなログも含まれます。

私がやりたいのは、これらのログエントリをテキストファイルに移動する代わりに、それらをキャプチャしてSQLデータベースにファイルすることです。次に、タイムスタンプとキー値のテーブル列を追加して、管理コンソールにアクセスしなくても、アプリケーションの管理Webページの一部として簡単に検索できるようにします。そのデータの一部をユーザーに公開することも可能です。

これはどのように行うことができますか?

フォローアップの質問:これは、Tomcatまたは別のコンテナーに移植できる方法で実行できますか?

4

1 に答える 1

1

カスタム ログ ハンドラを作成する必要があります。カスタム ログ ハンドラーは、以下を拡張するクラスですjava.util.logging.Handler

package test.stackoverflow;
import java.util.logging.Handler;
..
public class AlanHandler extends Handler {
..
        @Override
        public void publish(LogRecord record) {
              //CODE THAT STORES LOG RECORD INTO THE DATABASE
        }
}

logging.propertiesさらに、ファイルを少し変更する必要があります。

handlers=java.util.logging.ConsoleHandler, test.stackoverflow.AlanHandler

AlanHandler の JAR を Glassfish に (ライブラリとして) デプロイし、サーバーを再起動します。

于 2012-11-16T08:35:48.910 に答える