OpenEJBがJCLの代わりにslf4jロギングを使用するようにする依存関係構成の例を誰でもpom.xml
挙げることができます(私が理解しているように、これが現在使用されているものです)。
OpenEJB ロギングを構成する方法も参照してください。
OpenEJBがJCLの代わりにslf4jロギングを使用するようにする依存関係構成の例を誰でもpom.xml
挙げることができます(私が理解しているように、これが現在使用されているものです)。
OpenEJB ロギングを構成する方法も参照してください。
私たちは以下をサポートしています:
LogStreamFactoryの新しい実装は、クラス名をopenejb.log.factory
システムプロパティの値として設定することでプラグインできます。
既存のimplの1つをコピーして、JCLまたはSLF4Jのいずれかに更新してください。他のこともハックしたいという衝動に駆られた場合、プロジェクトは常に新しいコミッターを受け入れています!
David の指示のおかげで、これは実際には非常に簡単です。次の 2 つのクラスを実装するだけで済みます。 - Slf4jLogStreamFactory - Slf4jLogStream
次に、ファクトリを設定します: System.setProperty("openejb.log.factory", "de.glauche.Slf4jLogStreamFactory");
package de.glauche;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.LogStream;
import org.apache.openejb.util.LogStreamFactory;
public class Slf4jLogStreamFactory implements LogStreamFactory {
@Override
public LogStream createLogStream(LogCategory logCategory) {
return new Slf4jLogStream(logCategory);
}
}
および Slf4jLogStream:
package de.glauche;
import org.apache.openejb.util.LogCategory;
import org.apache.openejb.util.LogStream;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Slf4jLogStream implements LogStream {
private Logger log;
public Slf4jLogStream(LogCategory logCategory) {
log = LoggerFactory.getLogger(logCategory.getName());
}
@Override
public boolean isFatalEnabled() {
return log.isErrorEnabled();
}
@Override
public void fatal(String message) {
log.error(message);
}
@Override
public void fatal(String message, Throwable t) {
log.error(message,t);
}
... (overwrite the remaining methods like this)
これにより、slf4jを介してログバックロガーで適切にフォーマットされたすべての出力を取得しています:)
これは、外部ロギングを使用するように OpenEJB を作成した方法です。
[...]
@Before
public void before() throws Exception {
System.setProperty("openejb.logger.external", "true");
InitialContext ctx = new InitialContext();
}
[...]
このシステム プロパティをグローバル リソースに移動することは可能pom.xml
でしょうか。
API と JCL の依存関係を追加すると、SLF4J API を使用したログはデフォルトの JCL ログに送信されます。
それはあなたが望むものですか?または、ロギングに別のバックエンドを使用しますか?
<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-jcl</artifactId>
<version>1.6.1</version>
</dependency>
</dependencies>
Mavenの専門家ではありませんが、私の理解では、これが必要です:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.6.1</version>
</dependency>
OpenEJB が JCL をサポートしていない場合、その依存関係を追加しても意味がないため、JUL または Log4j を使用してください。
詳細については、 Maven リポジトリを参照してください。
本当に JCL ブリッジを使用したい場合に備えて、これを使用します。
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.1</version>
</dependency>