簡體   English   中英

如何設置Atomikos不寫入控制台日志?

[英]How to set Atomikos to not write to console logs?

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論壇(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

我已經想出辦法做到這一點。 它實際上非常簡單,因為Atomikos使用集中式類來執行名為com.atomikos.icatch.system.Configuration的日志記錄。 記錄實際上是通過com.atomikos.diagnostics.Console的實現來執行的,所以我所要做的就是取消注冊所有默認控制台並注冊我自己的基於公共日志記錄的實現

您的修復可以正常工作,但更容易的是將SLF4J / Log4J配置為不記錄com.atomikos的INFO級別注釋。*

HTH

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM