一千萬個為什麽

搜索

如何設置Atomikos不寫入控制臺日誌?

Atomikos在使用時非常冗長。事務管理器寫入控制臺似乎有很多INFO消息(對我來說幾乎無關緊要)。 transaction.properties中的設置(用於控制消息傳遞的級別 com.atomikos.icatch.console_log_level )似乎沒有任何影響,因為即使設置為WARN(或ERROR)INFO也是如此消息仍然記錄。此外,com.atomikos和atomikos的log4j設置似乎被忽略。 有沒有人設法使用Atomikos關閉控制臺上的INFO日誌?怎麽樣? 謝謝

彼得

最佳答案

我正在使用Atomikos 3.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;
    }   
}

轉載註明原文: 如何設置Atomikos不寫入控制臺日誌?