2014-01-11 122 views
1

我是一個項目的新配置log4j,我已經多次使用它,但這是我第一次配置它。使用屬性文件配置Log4j不會創建文件

我配置我的Log4j的,我已經導入log4j的-1.2.17.jar庫,我已經創建了一個屬性看起來像這樣:

log4j.appender.consola = org.apache.log4j.ConsoleAppender 
log4j.appender.consola.threshold = INFO 
log4j.appender.consola.target = System.out 
log4j.appender.consola.layout = org.apache.log4j.EnhancedPatternLayout 
log4j.appender.consola.layout.ConversionPattern = %d{dd MMM yyyy - HH:mm:ss} [%-5p]  %c{2} - %m%n 

log4j.appender.archivo = org.apache.log4j.FileAppender 
log4j.appender.archivo.file = archivo.log 
log4j.appender.archivo.layout = org.apache.log4j.PatternLayout 
log4j.appender.archivo.layout.ConversionPattern = %d [%-5p] %c{2} - %m%n 

log4j.rootLogger=TRACE, consola 
log4j.logger.com.javatutoriales.log4j.configuracion=WARN, archivo 

此屬性文件名爲log4j.properties創建在項目的默認包中。

當我在類中使用此配置時,它會正確返回控制檯日誌。我用下面的代碼在一個類:

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

public class PruebaLog { 
    /** * Logger. */ 
    private static final Logger logger = LoggerFactory.getLogger(PruebaLog.class); 
    public static void main (String args[]){ 
     logger.trace("mensaje de trace"); 
    logger.debug("mensaje de debug"); 
    logger.info("mensaje de info"); 
    logger.warn("mensaje de warn"); 
    logger.error("mensaje de error"); 

    } 


} 

的問題是,這個類返回我的控制檯,但是doesn't建立在我的項目的路徑的文件archivo.log。

有人知道它爲什麼不創建這個日誌文件的原因? 或者任何人都可以幫助我配置這個文件,以便在日誌文件中記錄我的項目的不同類。

回答

0

您不使用文件的appender,你已經爲根記錄器控制檯的appender:

log4j.rootLogger=TRACE, consola 

你需要這個,而不是使用文件的appender:

log4j.rootLogger=INFO, archivo 

瞭解更多appenders和來自官方文檔的不同log4j屬性:

http://logging.apache.org/log4j/1.2/manual.html

+0

我有倆都試圖和它doesn't工作。我也試着用:log4j.rootLogger = TRACE,consola,archivo和nothing,文件沒有被創建 – ikrambo

+0

我也嘗試過在你建議的鏈接中沒有配置的配置 – ikrambo

0

在你的屬性,你需要添加rootLogger文件

log4j.rootLogger=INFO, archivo 

欲瞭解更多詳細信息,您可以參考log4j.properties config

+0

我已經嘗試過了,但它不工作。我也曾嘗試過您已發佈的網站上的配置,但沒有任何內容。 – ikrambo