我已經做了我最好的設置Eclipse和我的Java應用程序工作中使用一個log4j.properties文件。但是,它似乎沒有使用屬性文件,我不知道爲什麼。Java應用程序:獲得的Log4j在Eclipse環境
庫:SLF4J-API-1.6.1,SLF4J-jdk14-1.6.1
在記錄工作正常的應用程序。我可以在eclipse控制檯中打印信息,警告和錯誤。
我想做什麼就能做的是日誌級別的所有消息記錄更改爲調試和打印到控制檯和一個日誌文件兩者。
我創建了一個log4j.properties文件看起來像這樣:
log4j.rootLogger=DEBUG,console,file
log4j.rootCategory=DEBUG, R, O
# Stdout
log4j.appender.O=org.apache.log4j.ConsoleAppender
# File
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=log4j.log
# Control the maximum log file size
log4j.appender.R.MaxFileSize=100KB
# Archive log files (one backup file here)
log4j.appender.R.MaxBackupIndex=5
log4j.appender.file.File=checkLog.log
log4j.appender.file.threshold=DEBUG
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.O.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
log4j.appender.O.layout.ConversionPattern=[%d{ISO8601}]%5p%6.6r[%t]%x - %C.%M(%F:%L) - %m%n
我的目錄結構是這樣的:
My Project
--src/
----MYProject/
------*.java
--bin/
----MYProject/
------*.class
--log4j/
----log4j.properties
在Eclipse我去: 運行配置 - >類路徑(標籤) - >右鍵點擊了「用戶條目」 - >添加「的log4j」作爲一個新的文件夾」,並保存
然後在我的代碼,我這樣調用記錄器(SA mple代碼以證明我的做法,因此可能有語法錯誤):
package MYProject;
import org.slf4j.LoggerFactory;
public class MyClass{
final org.slf4j.Logger test_logger = LoggerFactory.getLogger(MyClass.class);
public MyClass(){}
public someMethod(){
test_logger.debug("Some Debug");
test_logger.info("Some Info");
test_logger.warn("Some Warning");
test_logger.error("An Error");
}
}
然後我打電話的someMethod和它打印INFO,WARN,ERROR到Eclipse控制檯。它不會打印DEBUG,也不會打印到文件。
我會很感激的是我可能會做錯任何建議。
我已經玩過你的評論和apines,這是我已經想通了。 我無法添加PropertyConfigurator與我當前的設置,因爲它是log4j庫的屬性,而不是slf4j-jdk14(slf4j的log4j活頁夾,據我瞭解)庫的一部分。將VM參數設置爲true不會返回任何額外的調試。 – Bryce 2012-01-18 16:48:10
如果我再引用除了slf4j-jdk14之外的實際log4j庫,我開始獲取調試輸出。只需添加引用就可以使我的log4j.properties文件開始工作。這似乎使我獲得了我需要的90%左右。這增加了調試,但是我在初始文章中給出的類中打印的命令不再打印(test_logger.debug,test_logger.info等)。我認爲這是因爲我添加的log4j庫覆蓋了我以前使用的org.slf4j.Logger。我對如何讓這兩個庫在一起更好地工作有點困惑,有什麼建議嗎? – Bryce 2012-01-18 16:48:30
slf4j僅僅是一個記錄的外觀,你仍然需要添加實際的日誌庫(在你的情況下是log4j)到你的類路徑中。看到這個鏈接:http://slf4j.org/manual.html#binding – 2012-01-18 16:53:48