使用属性文件配置的Log4j不会创建文件

时间:2014-01-11 11:42:34

标签: java logging properties 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");

    }


}

问题是这个类将控制台退出,但是没有在我的项目路径中创建文件archivo.log。

有人知道它为什么不创建这个日志文件的原因??? 或者任何人都可以帮我配置这个文件,以便在日志文件中记录我项目的不同类???

2 个答案:

答案 0 :(得分:0)

您没有使用文件appender,因为您已为根记录器设置了控制台appender:

log4j.rootLogger=TRACE, consola

您需要使用文件appender:

log4j.rootLogger=INFO, archivo

从官方文档中了解有关appender和不同log4j属性的更多信息:

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

答案 1 :(得分:0)

在您的属性中,您需要添加rootLogger文件

log4j.rootLogger=INFO, archivo

有关详细信息,请参阅log4j.properties config