Как мне исправить эту ошибку импорта Log4J (тоже относится к Classpath)?
Когда я запускаю следующий простой пример log4J, я получаю сообщение об ошибке:
import org.apache.logging.log4j.core.*;
import java.io.*;
import java.sql.SQLException;
import java.util.*;
public class log4jExample{
/* Get actual class name to be printed on */
static Logger log = Logger.getLogger(
log4jExample.class.getName());
public static void main(String[] args)
throws IOException,SQLException{
log.debug("Hello this is an debug message");
log.info("Hello this is an info message");
}
}
и ошибка гласит:
Error: package org.apache.logging.log4j.core does not exist
Error: cannot find symbol
symbol: class Logger
location: class log4jExample
File: C:\Users\adel\Desktop\various_topics\JavaProjects\log4jExample.java [line: 10]
Error: cannot find symbol
symbol: variable Logger
location: class log4jExample
Поэтому я считаю, что правильно добавил log4J в classpath, как показано ниже:
И я извлек jar
файл log4j-core-2.0-beta4.jar
из каталога apache так:
Я не уверен, что происходит - как работает оператор импорта? то есть пример онлайн говорит мне, чтобы сказать:
import org.apache.log4j.Logger;
но что если моя структура каталогов будет такой:
\ Апач-log4j-2,0-beta4-бен \ орг \ Apache \ Logging\log4j\ ядро \Logger.java
Должен ли я сказать:
import org.apache.logging.log4j.core.Logger;
вместо?
2 ответа
Я думаю, что вам нужны как API, так и файлы Core в вашем classpath. Следуйте этим инструкциям для сборки и установки, а также для настройки. На странице конфигурации строка импорта, о которой вы спрашиваете, import org.apache.logging.log4j.Logger;
, Итак Logger
класс будет извлечен из API JAR.
Log4j 2 нуждается в двух jar-файлах (в отличие от Log4j 1.x, в котором он был нужен) из-за:
Разделение API
API для Log4j отделен от реализации, что позволяет разработчикам приложений понять, какие классы и методы они могут использовать, обеспечивая при этом прямую совместимость. Это позволяет команде Log4j безопасно и совместимым образом улучшить реализацию.
Кстати, в log4j 2.0 beta5 есть некоторые новые функции, которые могут вас заинтересовать, такие как Async Loggers, библиотека тегов JSP и поддержка JMX.