2010-04-19 71 views
3

Atomikos使用時非常冗長。似乎有很多INFO消息(大部分與我無關)事務管理器寫入控制檯。在是假設控制消息com.atomikos.icatch.console_log_level的水平transaction.properties的設置似乎並沒有產生任何影響,因爲即使設定爲WARN(或錯誤)的INFO消息仍然記錄。 com.atomikos和atomikos的log4j設置似乎也被忽略。 有誰設法關閉INFO日誌與Atomikos公司在控制檯上?怎麼樣? 感謝如何設置Atomikos不寫入控制檯日誌?

彼得

回答

0

,我想出了一個辦法做到這一點。其實很簡單,因爲Atomikos公司採用的是集中式的類做記錄稱爲com.atomikos.icatch.system.Configuration。記錄實際上是與com.atomikos.diagnostics.Console的實現進行,因此所有我不得不這樣做是爲了註銷所有默認的控制檯,並註冊自己的實現,是基於公共記錄

+0

你能否詳細說明這一點,比如在Spring配置的例子嗎? – 2011-10-21 17:43:15

0

你修復可以工作,但比較容易的事情將是配置SLF4J/Log4J的到無法登錄的com.atomikos INFO級別的註釋。*

HTH

+1

我試過之前沒有結果。看看他們的來源(默認情況下他們會在控制檯上執行System.out) – 2010-04-29 21:43:52

+0

@peter他們是他,Guy是Atomikos的聯合創始人:) – Ittai 2010-11-11 21:29:37

+2

只是爲了防止任何人停下來,不理解爲什麼上面的解決方案不起作用 - 這是因爲它不是com.atomikos。*但只是「atomikos」(當然沒有引號)這是真實的Atomikos 3.70 – Ittai 2010-12-27 16:08:12

0

我有類似的問題,並設法在這些職位的Atomikos公司論壇描述來解決這些問題( 1),這裏是溶液的摘要:

在我的類路徑,我有:
SLF4J-API-1.6.4.jar
SLF4J-log4j12-1.6.4.jar
的log4j-1.2.16.jar
,我沒有其他SLF4J *罐子類路徑中的文件(這很重要)。

在我的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

+1

關閉的信息性日誌記錄,它只是包含鏈接[被認爲是不好的做法](http://meta.stackexchange.com/questions/ 8231 /是 - 答案 - 即,剛剛包含鏈接別處 - 真的好 - 答案)。請總結這裏的內容(不要複製/粘貼),這樣答案就可以獨立運作。如果你不這樣做,那麼你的答案就會被刪除,特別是如果鏈接死亡的話。 – 2012-05-31 13:54:06

1

我使用Atomikos公司3.8進行測試,並試圖(2012年7月4日),在這裏列出的所有解決方案,並沒有奏效。

因此,我創建了下面的類MockAtomikosLogger,並呼籲在我的測試設置的配置方法。

測試設置的代碼片段:

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; 
    } 
}