3

Atomikos 在使用时非常冗长。事务管理器向控制台写出的似乎有很多 INFO 消息(大部分与我无关)。假设控制消息传递级别com.atomikos.icatch.console_log_level的 transaction.properties 中的设置似乎没有任何效果,因为即使设置为 WARN(或 ERROR),仍然会记录 INFO 消息。com.atomikos 和 atomikos 的 log4j 设置似乎也被忽略了。有没有人设法用 Atomikos 关闭控制台上的 INFO 日志?如何?谢谢

彼得

4

4 回答 4

1

我正在使用 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;
    }   
}
于 2012-07-04T01:07:18.260 回答
0

我遇到了类似的问题,并按照 Atomikos 论坛 (1) 的这些帖子中的描述设法解决了这些问题,以下是解决方案的摘要:

在我的类路径中,我有:
slf4j-api-1.6.4.jar
slf4j-log4j12-1.6.4.jar
log4j-1.2.16.jar
并且类路径中没有其他 slf4j* jar 文件(这很重要) .

在我的 log4j.xml 文件中,我添加了:

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

请注意我使用了“com.atomikos”而不是“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 回答
0

我想出了一个方法来做到这一点。这实际上非常简单,因为 Atomikos 使用一个集中类来执行名为com.atomikos.icatch.system.Configuration的日志记录。日志记录实际上是通过com.atomikos.diagnostics.Console的实现来执行的,所以我所要做的就是取消注册所有默认控制台并注册我自己的基于公共日志记录的实现

于 2010-04-20T11:36:54.447 回答
0

您的修复可能会起作用,但更简单的方法是将 SLF4J/Log4J 配置为不记录 com.atomikos 的 INFO 级别注释。*

高温高压

于 2010-04-26T20:26:37.823 回答