2010-10-19 38 views
8

我使用SLF4J和按規定我必須將日誌存儲到.log文件。但是當我運行該程序時,日誌不會寫入日誌文件。存儲日誌爲.log文件使用SLF4J/log4j的

類:

import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 


public class TestSLF4J { 

// private static Logger _logger = LoggerFactory.getLogger(TestSLF4J.class); 
    private static Logger _logger = LoggerFactory.getLogger(TestSLF4J.class); 



    public static void main(String[] args) { 
     logger .debug("Sample debug message"); 
logger .info("Sample info message"); 
logger .warn("Sample warn message"); 
logger .error("Sample error message"); 
    } 
} 

log4j.properties

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.maxFileSize=100KB 
log4j.appender.file.maxBackupIndex=5 
log4j.appender.file.File=C:/checkLog.log 
log4j.appender.file.threshold=DEBUG 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
log4j.rootLogger=DEBUG,file 

我可以看到的信息,警告,錯誤控制檯上而不是調試值.. !!

任何人都可以幫助我將日誌存儲到checkLog.log文件。

回答

9

我剛剛試過你給的例子,它對我來說工作得很好。有幾件事情,我會檢查/嘗試:

  • 檢查,如果你可以寫C盤根: - 寫這個:

    log4j.appender.file.File=checkLog.log 
    

    登錄到當前文件夾

  • 添加一個控制檯記錄,看看它是否工作在控制檯:

    log4j.appender.console=org.apache.log4j.ConsoleAppender 
    log4j.appender.console.layout=org.apache.log4j.PatternLayout 
    log4j.appender.console.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
    
    log4j.appender.file=org.apache.log4j.RollingFileAppender 
    log4j.appender.file.maxFileSize=100KB 
    log4j.appender.file.maxBackupIndex=5 
    log4j.appender.file.File=checkLog.log 
    log4j.appender.file.threshold=DEBUG 
    log4j.appender.file.layout=org.apache.log4j.PatternLayout 
    log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n 
    
    log4j.rootLogger=DEBUG,console,file 
    

    當您運行applicati你應該看到在控制檯和文件中登錄。

  • 檢查所有sl4j庫路徑 - 你需要在你的classpath

  • slf4j-apislf4j-log4j12罐確保log4j.properties是在classpath

希望這有助於。

1

確保您只有一個日誌框架的綁定。如果你有多個日誌框架jar,那麼你可能會NOT看到輸出。

我有類似的問題,然後發現,類路徑有slf4j-simple-1.7.5.jar以及log4j.jar。所以日誌輸出只能寫在控制檯上。從班級路徑中刪除第一個幫助。

Also check console, you should be getting a warning/error message.

相關問題