我想使用slf4j從.properties文件讀取數據,我可以在控制檯上輸出數據,但我想要的是輸出某些文件上的數據,所以我需要文件Appender這是在.properties文件中聲明的,我無法使用slf4j讀取.properties文件。任何人都可以幫助。 PS:我需要一個例子來說明如何在slf4j中使用.properties文件,以及如何初始化記錄器工廠。使用slf4j讀取.properties文件
4
A
回答
4
SLF4J只是一個門面,這意味着它不提供完整的 日誌解決方案。諸如配置appenders或設置日誌記錄級別等操作無法使用SLF4J執行。
slf4j-simple根本不提供額外的配置功能。
對於其他實現,您應該使用它們提供的配置方式。
例如,slf4j-log4j的log4j.properties。請參閱http://logging.apache.org/log4j/1.2/manual.html#Configuration。
1
slf4j是一個API--如果你認爲它只包含接口而沒有類,那麼你就不遠了。
您需要的行爲是在接口的實現中,對於slf4j可能是logback,AVSL,JDK14(java.util.logging),log4j或Simple。有些可以讀取屬性,有些則不能。
的logback對於您可以使用
<property file="src/main/java/chapters/configuration/variables1.properties" />
詳見http://logback.qos.ch/manual/configuration.html#definingProps。
3
如果使用log4j,也可以使用「Log4jLoggerAdapter」,定義.properties文件中的配置。 下面的代碼。
所需罐子:
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar
If desired the source code (useful when debugging):
slf4j-api-1.7.5-sources.jar
slf4j-log4j12-1.7.5-sources.jar
測試java類:
import org.apache.log4j.PropertyConfigurator;
import org.slf4j.LoggerFactory;
import org.slf4j.impl.Log4jLoggerAdapter;
public class Slf4j_log4j_main {
private static Log4jLoggerAdapter log = (Log4jLoggerAdapter) LoggerFactory.getLogger(Slf4j_log4j_main.class);
public static void main(String[] args) {
PropertyConfigurator.configure(Slf4j_log4j_main.class.getClassLoader().getResource("basic/log4j.properties"));
log.debug("a debug");
log.info("an info");
log.warn("a warn");
log.error("an error");
//log.fatal("a fatal"); // slf4j misses fatal log.
log.trace("a fatal");
System.out.println("");
System.out.println("[INFO]: done");
}
}
基本/ log4j.properties
#@FROM: log4j_slf4j.basic
#@BASED: [BIN319P17]/[BIN319P42]
#using your own named logger.
# defining appender file
log=/home/alsdias/work/dev/java/lab/slf4j/log4j/log4j_slf4j/src/basic
# root logger setup
log4j.rootLogger = DEBUG, A1, FILE
#setting your own named logger. If more loggers, set additivity false (below)
log4j.logger.log4j.level=INFO,A1
log4j.additivity.log4j.level=false
# console appender config
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n
# file appender config
log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=${log}/log.out
#setting the immediate flush to true (default)
log4j.appender.FILE.ImmediateFlush=true
#setting the threshold
log4j.appender.FILE.Threshold=debug
#setting the append to false, overwrite
log4j.appender.FILE.Append=false
#set a layout for the appender
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.conversionPattern=%d [%t] %-5p %c - %m%n
所生成的輸出:
2013-06-14 11:47:00,473 [main] DEBUG basic.Slf4j_log4j_main - a debug
2013-06-14 11:47:00,474 [main] INFO basic.Slf4j_log4j_main - an info
2013-06-14 11:47:00,474 [main] WARN basic.Slf4j_log4j_main - a warn
2013-06-14 11:47:00,475 [main] ERROR basic.Slf4j_log4j_main - an error
[INFO]: done
+0
非常感謝。這就像,我必須與誰談談才能獲得樣本屬性文件Internet? – barclay
相關問題
- 1. 如何使用slf4j讀取.properties文件?
- 2. Installshield讀取.properties文件
- 3. 從.properties文件讀取屬性與JavaFX
- 4. 如何讀取.xsl文件中的.properties文件?
- 5. 在另一個.properties文件中使用.properties文件密鑰
- 6. 何時讀取Java Web應用程序中的.properties文件
- 7. 如何使用maven插件從.properties中讀取值
- 8. SLF4j API讀取日誌
- 9. 使用讀取功能讀取文件
- 10. 如何在python中讀取多行.properties文件
- 11. 爲什麼ApplicationContext的getMessage()不能讀取.properties文件:Spring
- 12. 是否有一個讀取和寫入.properties文件的Delphi庫?
- 13. 爲什麼我無法按順序讀取.properties文件?
- 14. 嘗試讀取java .war以外的.properties文件時出錯
- 15. ant腳本使用兩個.properties文件?
- 16. i18n在JavaScript中使用.properties文件
- 17. 如何使用apache.commons.configuration更改.properties文件
- 18. Rails i18n使用java .properties文件
- 19. 使用Coldfusion編寫.properties文件
- 20. 使用javascript讀取文件
- 21. 使用javascript讀取文件
- 22. 讀取文件使用Ruby
- 23. 使用ifstream讀取文件
- 24. 使用fscanf讀取文件()
- 25. 使用fgetc讀取文件
- 26. slf4j的屬性文件即使在類路徑上也不會讀取
- 27. 比較.properties文件
- 28. 嵌套.properties文件
- 29. 通過Properties類讀取屬性值
- 30. Javascript:使用AJAX讀取文本文件
您正在使用哪個slf4j實現?例如log4j,logback? – artbristol