atomikos在使用时相当冗长。事务管理器向控制台写入的信息消息似乎很多(对我来说几乎不相关)。transaction.properties中用于控制消息com.atomikos.icatch.console_log_级别的设置似乎没有任何效果,因为即使设置为warn(或error),信息消息仍会被记录。此外,com.atomikos和atomikos的log4j设置似乎被忽略。
有没有人能用atomikos关闭控制台上的信息日志?。怎么做?
谢谢
彼得

最佳答案

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

10-06 04:09