我是新为项目配置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。
有人知道它为什么不创建这个日志文件的原因??? 或者任何人都可以帮我配置这个文件,以便在日志文件中记录我项目的不同类???
答案 0 :(得分:0)
您没有使用文件appender,因为您已为根记录器设置了控制台appender:
log4j.rootLogger=TRACE, consola
您需要使用文件appender:
log4j.rootLogger=INFO, archivo
从官方文档中了解有关appender和不同log4j属性的更多信息:
答案 1 :(得分:0)