私は、特定の期間内に指定された一連のエフェクトが発生したときに管理者に電子メールを送信するポートレットを開発しようとしています。私は自分のアペンダーを追加して、ロギングメカニズムを通るすべてのメッセージを処理できるように、ライフログにrootロガーを取得しようとしています。 私はソースコードを調べ、liferayがjava.util.logging.LogManagerを使用しているようです。私はサーバーが起動するときに起動するフックを作った。Liferay、ルートロガーの入手方法?
public void run(String[] ids) throws ActionException {
System.out.println("initializing");
LogListener listener = new LogListener();
listener.setLevel(Level.ALL);
listener.setFilter(null);
Logger.getGlobal().addHandler(listener);
_log.debug("complete");
}
そしてLogListenerクラス
package pl.com.mds.portlet.mailing.hook;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
public class LogListener extends Handler {
@Override
public void publish(LogRecord record) {
System.out.println("publishing******");
}
@Override
public void flush() {
// TODO Auto-generated method stub
System.out.println("have to flush! *****");
}
@Override
public void close() throws SecurityException {
// TODO Auto-generated method stub
System.out.println("close meee!");
}
}
しかし、いくつかの例外がスローされたとき、私は、コンソールpublishing******
唯一の例外スタックトレースに表示さカント:ここに私のrun()メソッドです。すべてのログをアプリケーションと受信に取得するにはどうすればよいですか? ありがとう:)
それは変です。 Liferayのマニュアルには、[log4jを使用する](https://web.liferay.com/community/wiki/-/wiki/Main/How+to+configure+the+logs+in+Liferay/)が使用されています。 – jmehrens