2017-10-17 201 views
0

下面是我的log4j配置log4j的不寫日誌

#log4j.additivity.org.apache.qpid=false 

log4j.rootLogger=DEBUG, console 
log4j.appender.console=org.apache.log4j.ConsoleAppender 
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.threshold=DEBUG 
log4j.appender.console.layout.ConversionPattern=%-7p %d [%t] %c %x - %m%n 

log4j.logger.javax.jms=DEBUG 
log4j.logger.org.apache.qpid=DEBUG 
log4j.logger.org.apache.qpid.amqp_1_0=DEBUG 
log4j.logger.org.apache.qpid.amqp_1_0.jms=DEBUG 

,然後在代碼

String log4jConfigFile = System.getProperty("user.dir") + File.separator + "log4j.properties"; 
    PropertyConfigurator.configure(log4jConfigFile); 
    logger.debug("this is a debug log message"); 

我調試消息this is a debug log message做得到印刷但從org.apache.qpid日誌消息沒有得到印在控制檯上

<dependency> 
     <groupId>org.apache.qpid</groupId> 
     <artifactId>qpid-amqp-1-0-client-jms</artifactId> 
     <version>0.22</version> 
    </dependency> 

編輯 我是java中的新手......我添加了日誌記錄依賴項。我是否需要在某處添加一些設置來將sl4j日誌重定向到log4j?

<slf4j-version>1.6.6</slf4j-version> 
    <log4j-version>1.2.17</log4j-version> 

    <!-- Logging --> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>${slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>${slf4j-version}</version> 
    </dependency> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>${log4j-version}</version> 
    </dependency> 
+0

我很確定apache org.apache.qpid使用slf4j進行日誌記錄,你有沒有設置__slf4j binder__來使用log4j作爲實現?您是否嘗試添加用於檢查log4j-slf4j-impl-2.0.jar jar? – gtosto

+0

@gtosto增加了你需要的細節作爲編輯..我也是新手到java,我需要一些其他配置設置某處重定向sl4j到log4j –

+0

如果你可以:我建議你使用更新版本的qpid amqp客戶端依賴於slf4j。否則就像@ rob-godfrey所說的,你必須配置內置的java日誌框架。看到他的答案。 – gtosto

回答

0

的(廢棄)qpid-amqp-1-0-client-jms客戶機使用java.util.logging,而不是log4j的。從mail我送回在2014年到[email protected]郵件列表報價:

你可以通過設置Java系統屬性 java.util.logging.config.file指向一個文件打開它,看起來 像這樣:

handlers=java.util.logging.FileHandler FRM.level=ALL 
java.util.logging.FileHandler.formatter=java.util.logging.SimpleFormatter 
java.util.logging.SimpleFormatter.format=[%1$tc] %4$s: %5$s%n 

java.util.logging.FileHandler.level=ALL` 

# (The output file is placed in the directory 
# defined by the "user.home" System property.) 
java.util.logging.FileHandler.pattern=%h/qpid-jms-%u.log` 

當你運行客戶端,那麼它應該生成一個名爲 qpid-JMS-0.log在你的主目錄,與看起來 類似輸出:

[Mon Feb 24 18:45:58 CET 2014] FINE: RECV[/127.0.0.1:5672|0] : 
SaslMechanisms{saslServerMechanisms=[ANONYMOUS]} 

注意,在這個老客戶的記錄實在是非常小的和最好你應該你的代碼,而不是遷移到支持Qpid JMS客戶端的AMQP 1.0 https://qpid.apache.org/components/jms/index.html這確實使用SLF4J,但使用的連接和隊列不同的配置語法。