私のアプリケーションはJbossAS7.1.1.finalで実行されます。ログをDBに書き込む必要があったので、カスタムハンドラーを作成しましたpublic class DataSourceHandler extends java.util.logging.Handler
。
すべて正常に動作しますが、このログが呼び出されたクラスの行番号と名前、およびエラーが発生した場合はスタックトレースを取得する必要があります。
Jboss 7にアップグレードする前に、log4jを使用し、以下を使用して取得することができました。
org.apache.log4j.spi.LocationInfo locationInfo = new org.apache.log4j.spi.LocationInfo(event.getThrown(), event.getSourceClassName());
org.apache.log4j.spi.ThrowableInformation throwableInfo = new org.apache.log4j.spi.ThrowableInformation(event.getThrown());
if (locationInfo != null) {
fileName = locationInfo.getFileName();
lineNumber = locationInfo.getLineNumber();
}
if (throwableInfo != null) {
String[] exceptionArray = throwableInfo.getThrowableStrRep();
for (String line : exceptionArray) {
exceptionBuffer.append(line).append(NEW_LINE);
}
info = extractInfo(exceptionBuffer);
}
どうすれば今それを行うことができますか?