あなたと共有したい完全な解決策を見つけました。私は以前にこれらをそれぞれ単独で試しましたが、他の回答で言及されているテクニックのいくつかを組み合わせる必要があります。
- 独自の LogDelegate を作成する必要があります。
org.hornetq.spi.core.logging.LogDelegate をインポートします。
org.slf4j.Logger をインポートします。
org.slf4j.LoggerFactory をインポートします。
public class Slf4jLogDelegate は LogDelegate を実装します {
プライベート最終ロガー ロガー;
public Slf4jLogDelegate(Class clazz) {
ロガー = LoggerFactory.getLogger(clazz);
}
@オーバーライド
public void debug(オブジェクトメッセージ) {
logger.debug(message.toString());
}
@オーバーライド
public void debug(Object メッセージ、Throwable t) {
logger.debug(message.toString(), t);
}
@オーバーライド
public void error(オブジェクトメッセージ) {
logger.error(message.toString());
}
@オーバーライド
public void error(Object メッセージ、Throwable t) {
logger.error(message.toString(), t);
}
@オーバーライド
public void fatal(オブジェクトメッセージ) {
logger.error(message.toString());
}
@オーバーライド
public void fatal(Object メッセージ、Throwable t) {
logger.error(message.toString(), t);
}
@オーバーライド
public void info(オブジェクトメッセージ) {
logger.info(message.toString());
}
@オーバーライド
public void info(Object メッセージ、Throwable t) {
logger.info(message.toString(), t);
}
@オーバーライド
public boolean isDebugEnabled() {
logger.isDebugEnabled(); を返します。
}
@オーバーライド
public boolean isInfoEnabled() {
logger.isInfoEnabled(); を返します。
}
@オーバーライド
public boolean isTraceEnabled() {
logger.isTraceEnabled(); を返します。
}
@オーバーライド
public void trace(オブジェクトメッセージ) {
logger.trace(message.toString());
}
@オーバーライド
public void trace(Object メッセージ、Throwable t) {
logger.trace(message.toString(), t);
}
@オーバーライド
public void warn(オブジェクトメッセージ) {
logger.warn(message.toString());
}
@オーバーライド
public void warn(Object メッセージ、Throwable t) {
logger.warn(message.toString(), t);
}
}
org.hornetq.spi.core.logging.LogDelegate をインポートします。
org.hornetq.spi.core.logging.LogDelegateFactory をインポートします。
public class Slf4jLogDelegateFactory は LogDelegateFactory を実装します {
// デリゲートのキャッシュは理にかなっているのでしょうか?
@オーバーライド
public LogDelegate createDelegate(Class clazz) {
新しい Slf4jLogDelegate(clazz) を返します。
}
}
- 次に、hornetq-configuration.xml に次の行を追加します。
<log-delegate-factory-class-name>yourpackage.Slf4jLogDelegateFactory</log-delegate-factory-class-name>
- 最後に、組み込みサーバーを起動する前に次の行を追加します。
org.hornetq.core.logging.Logger.setDelegateFactory(new Slf4jLogDelegateFactory());
ロガーを簡単に交換できる、実績のあるロギングメカニズムを使用できないのはなぜだろうと思っています。