3

Atomikosを使用すると、非常に冗長になります。トランザクションマネージャがコンソールに書き出すINFOメッセージがたくさんあるようです(ほとんど私には関係ありません)。メッセージングcom.atomikos.icatch.console_log_levelのレベルを制御することを想定しているtransaction.propertiesの設定は、 WARN(またはERROR)に設定されている場合でも、INFOメッセージがログに記録されるため、効果がないようです。また、com.atomikosとatomikosのlog4j設定は無視されているようです。誰かがAtomikosでコンソールのINFOログをオフにすることができますか?どのように?ありがとう

ピーター

4

4 に答える 4

1

私はテストにAtomikos3.8を使用しており、ここにリストされているすべてのソリューション(2012年7月4日)を試しましたが、どれも機能しませんでした。

そこで、次のクラスMockAtomikosLoggerを作成し、テストセットアップでconfigureメソッドを呼び出しました。

セットアップコードフラグメントのテスト:

    MockAtomikosLogger.configure();

モックロガーは次のとおりです。

package com.atomikos.logging;

import com.atomikos.logging.Logger;

public class MockAtomikosLogger implements Logger {

    org.apache.log4j.Logger logger = org.apache.log4j.Logger.getLogger(getClass());

    public static void configure() {
        com.atomikos.logging.LoggerFactory.setLoggerFactoryDelegate(
                new LoggerFactoryDelegate() {

                    @Override
                    public Logger createLogger(Class<?> clazz) {
                        return new MockAtomikosLogger();
                    }
                });
    }//end configure

    @Override
    public void logWarning(String message) {
        logger.warn(message);
    }

    @Override
    public void logInfo(String message) {
    }

    @Override
    public void logDebug(String message) {
    }

    @Override
    public void logWarning(String message, Throwable error) {
        logger.warn(message, error);
    }

    @Override
    public void logInfo(String message, Throwable error) {
    }

    @Override
    public void logDebug(String message, Throwable error) {
    }

    @Override
    public boolean isDebugEnabled() {
        return false;
    }

    @Override
    public boolean isInfoEnabled() {
        return false;
    }   
}
于 2012-07-04T01:07:18.260 に答える
0

私はそれを行う方法を考え出しました。Atomikosは集中化クラスを使用してcom.atomikos.icatch.system.Configurationと呼ばれるロギングを実行するため、実際には非常に単純です。ロギングは実際にはcom.atomikos.diagnostics.Consoleの実装で実行されるため、私がしなければならなかったのは、すべてのデフォルトコンソールの登録を解除し、コモンズロギングに基づく独自の実装を登録することだけです。

于 2010-04-20T11:36:54.447 に答える
0

修正は機能する可能性がありますが、com.atomikosのINFOレベルのコメントをログに記録しないようにSLF4J/Log4Jを構成する方が簡単です。*

HTH

于 2010-04-26T20:26:37.823 に答える
0

私は同様の問題を抱えていて、Atomikosフォーラム(1)へのこれらの投稿で説明されているように、なんとか解決できました。解決策の概要は次のとおりです。

私のクラスパスには次のものがあります:
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jarlog4j
-1.2.16.jar
そしてクラスパスに他のslf4j*jarファイルがありません(これは重要です) 。

log4j.xmlファイルに次のものを追加しました。

<logger name="com.atomikos">
    <level value="error" />
</logger>

「atomikos」ではなく「com.atomikos」を使用したことに注意してください(後者は私には機能しないため)。そして今、すべてを機能させる他の重要なトリック:プロパティがcom.atomikos.icatch.output_dirであることを確認してください

jta.properties(またはtransactions.properties)で削除/コメントアウトされます

お役に立てば幸いです。

(1):http ://fogbugz.atomikos.com/default.asp?community.6.2809.2

于 2012-05-31T13:32:20.277 に答える